使用 Monolog 记录完整堆栈跟踪
我在应用程序中使用Monolog作为独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常,我想记录它:
$mylogger->error('Exception caught', array('exception' => $exception));
除了一件小事之外,这很完美 - 它不会记录整个堆栈跟踪。是否可以使用 monolog 内置格式化程序记录异常的完整堆栈跟踪?
我在应用程序中使用Monolog作为独立库,最近我遇到了一个问题。比方说,在我的应用程序中的某个时刻,我捕获了一个异常,我想记录它:
$mylogger->error('Exception caught', array('exception' => $exception));
除了一件小事之外,这很完美 - 它不会记录整个堆栈跟踪。是否可以使用 monolog 内置格式化程序记录异常的完整堆栈跟踪?
实际上,从版本开始,可以在日志文件中包含堆栈跟踪:有一种名为.1.12.0
LineFormatter
includeStacktraces
要使用此功能,您需要覆盖 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);