使用 Monolog 记录完整堆栈跟踪
我在应用程序中使用Monolog作为独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常,我想记录它:
$mylogger->error('Exception caught', array('exception' => $exception));
除了一件小事之外,这很完美 - 它不会记录整个堆栈跟踪。是否可以使用 monolog 内置格式化程序记录异常的完整堆栈跟踪?
我在应用程序中使用Monolog作为独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常,我想记录它:
$mylogger->error('Exception caught', array('exception' => $exception));
除了一件小事之外,这很完美 - 它不会记录整个堆栈跟踪。是否可以使用 monolog 内置格式化程序记录异常的完整堆栈跟踪?
实际上,从版本开始,可以在日志文件中包含堆栈跟踪:有一种名为.1.12.0LineFormatterincludeStacktraces
要使用此功能,您需要覆盖 monolog 格式化程序的默认行为:
config.yml
monolog:
    handlers:
        main:
            formatter: your.monolog.service.id
            (rest of config is as usual)
服务.yml
services:
    your.monolog.service.id:
        class: Monolog\Formatter\LineFormatter
        calls:
            - [includeStacktraces]
检查 github 以获取更多信息:拉取请求
我有一个非常简单的解决方案!!!
$mylogger->error((string) $exception);
 
				    		 
				    		 
				    		 
				    		