如何将消息记录到不同的文件

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.8,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何将消息记录到不同的文件

Symf欧宝娱乐app下载地址ony框架将日志消息组织到通道中。默认情况下,有几个通道,包括学说,事件,安全,请求和更多。通道打印在日志消息中,也可以用于将不同的通道定向到不同的位置/文件。

默认情况下,Symfon欧宝娱乐app下载地址y将每条消息记录到一个文件中(无论通道如何)。

请注意

每个通道对应于一个记录器服务(monolog.logger.XXX)在容器中(使用调试:容器命令查看完整的列表),并将它们注入到不同的服务中。

将通道切换到不同的处理程序

现在,假设你想记录安全通道到另一个文件。要做到这一点,只需创建一个新的处理程序并将其配置为仅记录来自安全通道。你可以加上这个config.yml登录所有环境,或者只是config_prod.yml只发生在刺激

  • YAML
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12 13 14
# app / config / config.yml独白:处理程序:安全:#记录所有消息(因为调试是最低级别)水平:调试类型:路径:' % kernel.logs_dir % / security.log '渠道:(安全)#不记录此处理程序的安全通道消息的示例主要:#……#通道:['!安全']

谨慎

渠道配置仅适用于顶级处理程序。嵌套在组、缓冲区、过滤器、交叉或其他此类处理程序中的处理程序将忽略此配置,并将处理传递给它们的每条消息。

YAML规范

您可以通过多种形式指定配置:

1 2 3 4 5 6 7
渠道:#包括所有频道渠道:喷火#只包含foo通道渠道:'!foo”#包含除'foo'之外的所有通道渠道:(foo,酒吧)#只包含频道foo和bar渠道:[' !foo”,'!酒吧的#包括所有频道,除了'foo'和'bar'

创建自己的频道

您可以一次将通道独白日志更改为一个服务。这可以通过配置下面或通过标记您的服务monolog.logger并指定服务应该记录到哪个通道。使用标记,注入到该服务中的记录器将被预配置为使用您指定的通道。

配置没有标记服务的额外通道

使用MonologBundle 2.4,您可以配置额外的通道,而不需要标记您的服务:

  • YAML
  • XML
  • PHP
1 2 3
# app / config / config.yml独白:渠道:(“foo”,“酒吧”

使用此功能,现在可以将日志消息发送到喷火通道中使用自动注册记录器服务monolog.logger.foo

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。