Symfony 2:登录到特定文件

fri*_*nux 13 logging symfony monolog

在发布我的问题之前我搜索了很多.我没有找到明确的答案,所以在这里.

我想将消息作为dev.log或prod.log记录在不同的日志文件中.我的意思是一个不会被Symfony核心消息篡改的文件.我听说过monolog中的记录器和处理程序,但不是很清楚.

如何将来自控制器,模型的消息记录到特定的日志文件?

小智 24

您必须将信息添加到services.yml文件,而不是config.yml文件:

所以在services.yml(services.xml)你有

my_service.logger:
    class:     Symfony\Bridge\Monolog\Logger
    arguments: [app]
    calls:
        - [pushHandler, [@my_service.logger_handler]]

my_service.logger_handler:
    class:     Monolog\Handler\StreamHandler       
    arguments: [%kernel.logs_dir%/%kernel.environment%.admin.log, 200]
Run Code Online (Sandbox Code Playgroud)

并在您使用的控制器操作中:

$logger = $this->get('my_service.logger');
Run Code Online (Sandbox Code Playgroud)