如何为不同的文件日志消息吗

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何为不同的文件日志消息吗

Symf欧宝娱乐app下载地址ony框架组织日志消息通道。默认情况下,有几个频道,包括学说,事件,安全,请求和更多。日志消息的通道是印刷,也可以用来直接不同的渠道不同的地方/文件。

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

请注意

每个通道对应一个不同的日志记录器服务(monolog.logger.XXX)使用php bin /控制台调试:容器独白命令查看完整列表的服务和学习如何自动装配独白渠道

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

现在,假设您想记录安全渠道不同的文件。为此,创建一个新的处理程序和配置它只记录的消息安全通道。下面的例子只在刺激配置环境但你可以在任何(或所有)环境:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#配置/包/刺激/ monolog.yaml独白:处理程序:安全:#记录所有消息(调试以来的最低水平)水平:调试类型:路径:' % kernel.logs_dir % / security.log '渠道:(安全)# *不*日志安全通道的一个示例消息处理程序主要:#……#通道(“!安全”):

谨慎

渠道只适用于顶级配置处理程序。处理程序嵌套在一个集团、缓冲、过滤器、祈祷或其他处理程序将忽略这样的配置和处理每个消息传递给他们。

YAML规范

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

1 2 3 4 5 6 7
渠道:~#包含所有的频道渠道:喷火#只包括频道“foo”渠道:“foo !”#包括所有渠道,除了“foo”渠道:(foo,酒吧)#只包括频道“foo”和“酒吧”渠道:(“foo !”“酒吧!”]#包括所有渠道,除了“foo”和“酒吧”

创建自己的频道

您可以更改频道独白日志一个服务。这样做是通过配置低于或标记你的服务monolog.logger并指定通道服务日志。标签,注入的记录器服务预配置使用你指定的通道。

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

您还可以配置额外的渠道而不需要标记你的服务:

  • YAML
  • XML
  • PHP
1 2 3
#配置/包/刺激/ monolog.yaml独白:渠道:(“foo”,“酒吧”]

欧宝娱乐app下载地址Symfony自动注册一个服务每通道(在这个例子中,通道喷火创建一个服务被称为monolog.logger.foo)。为了注入这个服务他人,你必须更新服务配置选择特定的服务注入

如何自动装配记录器渠道

MonologBundle3.5你可以通过类型提示自动装配不同的独白频道服务参数使用下面的语法:Psr \ Log \ LoggerInterface $ < camelCased频道名称> +记录器。的<频道>一定是预定义的独白中配置

例如注入相关的服务foo_bar记录器通道,改变你的构造函数:

1 2 3 4 5
——公共职能__construct (LoggerInterface记录器美元)+公共职能__construct (LoggerInterface fooBarLogger美元){$ this - >日志记录器= $ fooBarLogger;}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。