如何通过处理器向日志消息添加额外的数据
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何通过处理器向日志消息添加额外的数据
Monolog允许您在记录记录之前处理记录,以添加一些额外的数据。一个处理器可以应用于整个处理程序堆栈,也可以只应用于特定的处理程序。
处理器是一个可调用对象,接收记录作为它的第一个参数。方法配置处理器monolog.processor
DIC标签。看到关于它的参考资料.
添加会话/请求令牌
有时很难判断日志中的哪些条目属于哪个会话和/或请求。下面的例子将为每个使用处理器的请求添加一个唯一的令牌:
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\会话\SessionInterface;类SessionRequestProcessor{私人$会话;私人$sessionId;公共函数__construct(SessionInterface$会话){$这->会话=$会话;}公共函数__invoke(数组$记录){如果(!$这->会话->isStarted ()) {返回$记录;}如果(!$这->sessionId) {$这->sessionId = substr($这->会话->getId (),0,8) ?:'????????';}$记录[“额外的”] [“令牌”] =$这->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许可证。