记录器不记录应用程序中引发的异常



我使用以下配置来创建记录器:

'log' => [
    'logger' => [
        'writers' => [
            'stream' => [
                'name' => 'stream',
                'priority' => ZendLogLogger::INFO,
                'options' => [
                    'stream' => __DIR__ . '/../../data/log/name_' . date("Ym") . '.log',
                    'formatter' => [
                        'name' => ZendLogFormatterSimple::class,
                        'options' => [
                            'format' => '%timestamp% %priorityName% : %message% %extra%',
                            'dateTimeFormat' => 'c',
                        ],
                    ],
                ],
            ],
        ],
        'processors' => [
            'requestid' => [
                'name' => ZendLogProcessorRequestId::class,
            ],
            'backtrace' => [
                'name' => ZendLogProcessorBacktrace::class,
            ],
        ],
    ],
],

日志工作正常,但 php 错误没有记录到任何地方。

为什么?

我使用此代码生成一个简单的错误

$d1 = new DateTime();
$d2 = new DateTime();
$a = array($d1,$d2);
$a->format("Y-m-d");

在我的控制器类中。

未记录此错误

在 PHP 7 中,捕获致命错误的错误类

}catch(Error $err){
    $this->log->err($err->getMessage());

错误类

默认情况下,

zend-log不是异常或错误处理程序。您必须对其进行设置才能执行此操作。您可以使用异常处理程序、错误处理程序fatal_error_shutdownfunction选项来设置它。所有配置键都接受布尔值。下面是一个示例。我没有测试它,但应该是那样的。

'log' => [
    'logger' => [
        'writers' => [
            'stream' => [
                'name' => 'stream',
                'priority' => ZendLogLogger::INFO,
                'options' => [
                    'exceptionhandler' => true,
                    'errorhandler' => true,
                    'stream' => __DIR__ . '/../../data/log/name_' . date("Ym") . '.log',
                    'formatter' => [
                        'name' => ZendLogFormatterSimple::class,
                        'options' => [
                            'format' => '%timestamp% %priorityName% : %message% %extra%',
                            'dateTimeFormat' => 'c',
                        ],
                    ],
                ],
            ],
        ],
        'processors' => [
            'requestid' => [
                'name' => ZendLogProcessorRequestId::class,
            ],
            'backtrace' => [
                'name' => ZendLogProcessorBacktrace::class,
            ],
        ],
    ],
],

相关内容

  • 没有找到相关文章

最新更新