php - 在Monolog ErrorHandler中设置最小的PHP错误报告

标签 php error-handling monolog

刚开始使用Monolog在我的PHP项目中记录错误,但是我想将最小错误报告设置设置为NOTICE或更高。我现在正在使用的代码

use Monolog\ErrorHandler;    
$handler = new ErrorHandler($logger);

$handler->registerErrorHandler([], false);
$handler->registerExceptionHandler();
$handler->registerFatalHandler();

生成所有错误,包括通知。如何设置等价于

error_reporting(E_ALL & ~E_NOTICE);



使用Monolog

最佳答案

除非您使用ErrorHandler运算符将它们静音或通过trigger_error实际设置error_reporting,否则@将捕获所有级别的error_reporting(E_ALL & ~E_NOTICE);

如果出于某种原因您想保留错误报告,但同时滤除独白错误处理程序捕获的那些错误,则我将扩展错误处理程序并进行注册。像这样:

class MyErrorHandler extends Monolog\ErrorHandler{

    public function handleError($code, $message, $file = '', $line = 0, $context = [])
    {
        if($code === E_NOTICE){
            return;
        }

        parent::handleError($code, $message, $file, $line, $context);
    }
}

use MyErrorHandler as ErrorHandler;    
$handler = new ErrorHandler($logger);

$handler->registerErrorHandler([], false);
$handler->registerExceptionHandler();
$handler->registerFatalHandler();

请注意,我尚未对此进行实际测试,但是我发现没有任何理由无法正常工作

关于php - 在Monolog ErrorHandler中设置最小的PHP错误报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43665088/

相关文章:

php - 如何让 MonoLog 的 ErrorHandler 输出到 stdout?

php - 多选引导插入数据库 Laravel

php - MySQL按另一个表的总和排序

php - 简单解释 PHP OOP vs Procedural?

php - 在 PHP 中处理 MySQL 错误

c++ - 错误后如何结束C++程序?

php - Monolog、日志类和方法名

php - 如何使用 PHP 启动我的 scrapy 脚本?

python - 在 QMessageBox 中显示 MySQL 错误

php - 如何使用 Laravel 和 Monlog 创建循环日志文件