datravel / php-debug

调试组件提供工具,以简化PHP代码的调试。

dev-master 2016-07-01 11:27 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:37:05 UTC


README

PHPDebug是一个Monolog Cascade扩展,它提供了处理和记录不同级别错误的机会。

安装

在您的composer.json文件中将PHPDebug添加为需求,或者运行

$ composer require datravel/php-debug

使用方法

然后,就像下面这样使用您的记录器

Cascade::fileConfig($config);
Log::info('Well, that works!');
Log::error('Maybe not...', ['some'=>'extra data']);

配置您的记录器

Monolog Cascade支持以下配置格式

  • Yaml
  • JSON
  • Php数组

配置结构

以下是一个示例Php数组配置文件

<?php

$config = [
    'formatters' => [
        'dashed' => [
            //'class' => 'Monolog\Formatter\LineFormatter',
            'class' => \Monolog\Formatter\JsonFormatter::class
            //'format' => '%datetime%-%channel%.%level_name% - %message%'
        ]
    ],
    'handlers' => [
        'output' => [
            'class' => \Monolog\Handler\StreamHandler::class,
            'level' => 'ERROR',
            'formatter' => 'dashed',
            'stream' => 'php://output'
        ],
        'console' => [
            'class' => \Monolog\Handler\StreamHandler::class,
            'level' => 'DEBUG',
            'formatter' => 'dashed',
            'stream' => 'php://stdout'
        ],
        'console' => [
            'class' => 'Monolog\Handler\StreamHandler',
            'level' => 'DEBUG',
            'formatter' => 'dashed',
            'stream' => 'php://stdout'
        ],
        'file' => [
            'class' => 'Monolog\Handler\StreamHandler',
            'level' => 'INFO',
            'formatter' => 'dashed',
            'stream' => './example_info.log'
        ]
    ],
    'processors' => [
        'web_processor' => [
            'class' => 'Monolog\Processor\WebProcessor'
        ]
    ],
    'loggers' => [
        'mainLogger' => [
            'handlers' => [
                0 => 'output',
                1 => 'console',
                2 => 'file'
            ],
            'processors' => [
                0 => 'web_processor'
            ]
        ]
    ],
    'disable_existing_loggers' => true,
    'errorReporting' => E_ALL & ~E_DEPRECATED & ~E_STRICT,
];

有关配置的更多信息 - https://github.com/theorchard/monolog-cascade

什么是DebugException

DebugException是一种异常,您可以将其创建为对象,添加额外数据并抛出。抛出后,调试器将捕获此异常并将额外数据保存到日志中。示例

throw (new DebugException())->setExtra('mixed data');

try {
    ...
} catch (\Exception $e) {
    throw (new DebugException())->setCustomTrace($e->getTraceAsString());