对不起这个主题,但是我真的想不通,如何配置Symfony2做我喜欢的事情:-) 我只是没有得到“全局”。
我想为我的捆绑包创建一个自己的日志通道。通常应该将此通道写入dev中的自己的文件,因为它应该写入prod.log或被抑制(其中一个或可通过配置切换)。
我感觉这个解决方案是通过许多文档和教程共享的。
对于这个非常不明确的问题感到抱歉。
加成-问题: 4.当在控制器之外进行记录(访问容器)时,我必须实现服务,对吗?
答案 0 :(得分:2)
行。我的错是混乱的误解和菜鸟。阅读Service-Doc并将此线程与(How to write logs from one service into separate file?)进行比较后,我得到了它的工作:
我喜欢这个,因为它只是配置给定的类而不是实现它自己的:
config.yml:
services:
myOwnLogger:
class: Symfony\Bridge\Monolog\Logger
arguments: [pushHandler, [@myOwnLogHandler]]
myOwnLogHandler:
class: Monolog\Handler\StreamHandler
arguments: [%kernel.logs_dir%/%kernel.environment%.myOwnChannel.log, 200] #200 = INFO
Egads,这很容易,请原谅我不理解'其他'主题。
答案 1 :(得分:1)
您可以看到Switching a channel to a different handler了解如何配置它以记录到不同的日志文件(如果您只想在开发中使用它,请在config_dev.yml中)。
要创建新频道(默认情况下,记录器服务使用app
频道),您需要将其注入服务using the monolog.logger tag。无论何时将日志发送到该记录器实例,它都将转到为此通道配置的处理程序。
服务定义中的@logger
将替换为您需要的频道的正确记录器实例。如果您不添加自定义标记,则@logger
保持不变,您将获得默认(app
)频道。