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

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.2,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

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

独白之前允许您处理记录日志添加一些额外的数据。一个处理器只能申请整个处理程序堆栈或为一个特定的处理程序。

处理器是一个可调用的接收记录作为它的第一个参数。处理器配置使用monolog.processorDIC标签。看到参考一下

添加一个会话/请求令牌

有时很难说日志中的条目所属会话或请求。下面的例子将添加一个独特的令牌为每个请求使用一个处理器:

1 2 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

如果您使用多个处理程序,你也可以注册一个处理器在处理程序级别或在英吉利海峡上而不是注册全球(见下面)。

ob娱乐下载Symfony的MonologBridge提供了处理器,可以注册在您的应用程序。

DebugProcessor
添加额外的信息用于调试时间戳或记录错误消息。
TokenProcessor
将从当前用户令牌的信息添加到记录即用户名、角色和用户是否进行验证。
WebProcessor
覆盖数据从请求使用Symfony的请求对象内部的数据。ob娱乐下载

每个处理程序注册的处理器

你可以注册一个处理器/处理程序使用处理程序选择的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,渠道:主要}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。