如何在symfony3中为控制器中的monolog创建通道名称

时间:2017-11-01 17:03:00

标签: symfony monolog

我需要有单独的日志文件。这些文件应在代码工作期间命名。 有可能的?还是有其他解决方案吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要自定义Monolog处理程序。

1-)您可以更改频道名称。写行到config.yml

monolog:
    channels: [custom_channel]   # channel
    handlers:
        custom:   
            type: service   
            channels: [custom_channel]
            id: custom.handler   # service name at services.yml

2-)添加services.yml

custom.handler:
    class: AppBundle\Service\CustomHandler
    arguments: [""]

3-)创建自定义处理程序服务

class Custom Handler extends AbstractProcessingHandler {


    public function __construct(){
        parent::__construct();
    }

    protected function write (array $record) {
        dump($record); die;
    }

}

4-)你可以使用这个处理程序。

$this->get('monolog.logger.custom_channel')->info('It is info log.');

$this->get('monolog.logger.custom_channel')->alert('ALERT!', array('http://mertblog.net'));