我已将 Laravel 5 配置为使用自定义日志记录配置(默认设置太简单了)。我添加了独白的 IntrospectionProcessor记录日志调用的文件名和行号。
问题是所有行都得到相同的文件和行号:
[2015-06-29 17:31:46] local.DEBUG (/home/vagrant/project/vendor/laravel/framework/src/Illuminate/Log/Writer.php#201): Loading view... [192.168.10.1 - GET /loans/create]
有没有办法配置 IntrospectionProcessor 来打印实际行而不是外观行?
如果我执行 Log::getMonolog()->info('Hello');
它会工作并打印正确的文件和行号......但我不知道它有多安全避免调用 Writer.writeLog function因为它会触发日志事件(不触发该事件是否安全?)。
最佳答案
(仅在 Laravel 4.2 中尝试过!)
当将 Introspection Processor 推送到 Monolog 时,可以在 IntrospectionProcessor 构造函数中将 skipClassesPartial 数组作为第二个参数。使用这个数组,可以跳过 Laravel Illuminate 类,记录器记录调用 log 方法的类。
$log->pushProcessor(new IntrospectionProcessor(Logger::DEBUG, array('Illuminate\\')));
另见:https://github.com/Seldaek/monolog/blob/master/src/Monolog/Processor/IntrospectionProcessor.php
关于php - Laravel 5 > 使用 monolog 自省(introspection)处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31122531/