相关疑难解决方法(0)

如何向Symfony/Monolog日志输出添加其他信息(主机,URL等)?

我正在开发我的第一个基于Symfony的WebApp项目.我已将Symfony配置为不仅将日志消息写入不同的日志文件,还将其作为电子邮件立即发送严重错误消息.这很好用.但是,我想在默认日志消息中添加一些其他信息,以便更容易找到实际的错误源.

示例:一个页面的Twig文件从.yml文件加载本地化文本.文本包含一个%about_link%占位符,应该由关于页面的路径/ URL替换.我忘了这个替换,所以链接没有指向URL而是指向%about_link%.这导致一个NotFoundHttpException因为没有溃败%about_link%可以找到...

没什么大不了.但要找到包含此错误的实际页面/控制器有点棘手.默认日志消息显示以下内容:

[2015-12-14 17:19:36] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /%25about_link%25"" at /long/path/to/symfony/.../RouterListener.php line 176 []
Run Code Online (Sandbox Code Playgroud)

所以RouterListener.php当试图找到一条路线时,会抛出异常%about_link%.好的,这并没有给我任何关于这个坏链接所在页面的提示.

当然,对坏路线的呼叫根本不必位于任何页面上.用户可能直接输入了错误的链接.Symfony必须存储/记住最后一页,以提供有关可能来源的任何提示.那么,是否可以包含这些信息呢?

另外,我想添加有关报告问题的主机的信息.我运行在WebApp的两个实例:www.my_web_app.xy和betatest.my_web_app.xy,这将是一个很大的帮助,如果如果它来自日志消息将显示www或betatest.

将此信息添加到我自己创建的日志消息中是没有问题的,但是如何将此信息添加到Symfony或第三方代码生成的消息中?我必须在它到达日志处理程序之前以某种方式拦截日志消息.这可能吗?

php logging symfony monolog

9
推荐指数
2
解决办法
3643
查看次数

标签 统计

logging ×1

monolog ×1

php ×1

symfony ×1