我似乎找不到此问题的根源。我实际上在另一个应用程序中运行了几乎相同的Docker容器和Exception handler lib。但是,由于某种原因,我在错误日志文件中得到了重复的日志条目。
问题在于,不仅仅是相同的重复条目(这将是另一个有趣的问题)。它记录了相同的异常,并且具有相同的堆栈跟踪,但是一个来自我的自定义异常处理程序(JSON),另一个是默认的PHP错误日志处理程序(或者看起来-已通过CLI SAPI和PHP-FPM测试过) )。
我假设如果设置了异常处理程序,PHP将不会写入日志文件。我还在异常处理程序的回调函数的末尾执行die(1)
。
同样,所有的异常处理代码似乎都运行良好。只是PHP仍在记录Exception。是否需要在PHP配置端完成设置或我缺少的其他设置?
下面是错误日志输出的副本:
[24-Nov-2018 02:20:11 UTC] PHP Exception: Testing in /srv/www/boot/common.php on line 65
[24-Nov-2018 02:20:11 UTC] PHP Stack trace:
[24-Nov-2018 02:20:11 UTC] PHP 1. {main}() /srv/www/public/index.php:0
[24-Nov-2018 02:20:11 UTC] PHP 2. require() /srv/www/public/index.php:13
{"timestamp":"2018-11-24 02:20:11 UTC","level":"critical","message":"Testing","app_version":{},"environment":"dev","class":"Exception","file":"\/srv\/www\/boot\/common.php","line":65,"code":0,"previous":null,"trace":[{"file":"\/srv\/www\/public\/index.php","line":13,"function":"require"}],"user":[],"tags":[],"extra":[],"output_buffers":[]}
答案 0 :(得分:-1)
将其留给可能遇到此问题的任何人。问题出在XDebug劫持了您的异常。在我们的开发环境中的特定应用上启用了此功能。