如何通过处理器向日志消息添加额外的数据

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何通过处理器向日志消息添加额外的数据

Monolog允许您在记录记录之前处理记录,以添加一些额外的数据。一个处理器可以应用于整个处理程序堆栈,也可以只应用于特定的处理程序。

处理器是一个可调用对象,接收记录作为它的第一个参数。方法配置处理器monolog.processorDIC标签。看到关于它的参考资料

添加会话/请求令牌

有时很难判断日志中的哪些条目属于哪个会话和/或请求。下面的例子将为每个使用处理器的请求添加一个唯一的令牌:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
名称空间应用程序日志记录器使用ob娱乐下载组件HttpFoundation会话SessionInterfaceSessionRequestProcessor私人会话私人sessionId公共函数__construct(SessionInterface会话->会话=会话;}公共函数__invoke(数组记录如果(!->会话->isStarted ()) {返回记录;}如果(!->sessionId) {->sessionId = substr(->会话->getId (),08) ?:'????????';}记录“额外的”] [“令牌”] =->sessionId。“- - -”.substr函数(真正的),8);返回记录;}}

接下来,将你的类注册为一个服务,以及一个使用额外信息的格式化程序:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
#配置/ services.yaml服务:monolog.formatter.session_request:类:独白\格式化程序\ LineFormatter参数:-“[% % datetime % %][% %额外的。令牌% % % % % %频道。% % level_name % %: % % % % % %消息上下文额外% % % % % % \ n”App \记录器\ SessionRequestProcessor:标签:-名称:monolog.processor

最后,设置格式化程序用于任何你想要的处理程序:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8
#配置/包/刺激/ monolog.yaml独白:处理程序:主要:类型:路径:' % kernel.logs_dir % / % kernel.environment % . log '水平:调试格式化程序:monolog.formatter.session_request

如果使用多个处理程序,还可以在处理程序级或通道级注册一个处理器,而不是全局注册它(请参阅以下部分)。

为每个处理器注册处理器

方法可以为每个处理程序注册一个处理器处理程序选项monolog.processor标签:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/ services.yaml服务:App \记录器\ SessionRequestProcessor:标签:-名称:monolog.processor,处理程序:主要

每个通道注册处理器

方法可以为每个通道注册一个处理器通道选项monolog.processor标签:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/ services.yaml服务:App \记录器\ SessionRequestProcessor:标签:-名称:monolog.processor,渠道:主要
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。