php - Laravel 5 > 使用 monolog 自省(introspection)处理器

标签 php laravel logging laravel-5 monolog

我已将 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/

相关文章:

javascript - onmouse="抛出错误未捕获语法}之后的 PHP js 函数

mysql - 每当创建模态的新实例时插入一个具有值的字段

php - Laravel 5.5 地理编码器

java - 如何获取 server.log 文件中的日志条目以在 jsf 页面上打印出来

java - Glassfish 应用程序日志记录的常见模式有哪些?

mysql - 将 Apache 访问日志存储到 MySQL

php - 不打印博客文章的正文?

javascript - 脚本不执行附加数据,但执行表单内的预写 html 代码,脚本也已加载到页面顶部

php - 添加发票时 QuickBooks IPP v3 出现错误 3200

php - laravel 5 在 Controller 中获取默认语言