【问题标题】:Symfony Monolog rewrites the same fileSymfony Monolog 重写同一个文件
【发布时间】:2016-02-02 14:57:37
【问题描述】:

我为 Monolog 服务:

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

    cmd_local.logger_handler:
        class:     Monolog\Handler\StreamHandler
        arguments: [%kernel.logs_dir%/%kernel.environment%.cmd.local.log, 200]

我现在需要的是当这个文件超过 x 天时重写(或删除和写入)同一个文件。

我阅读了有关日志轮换的信息,但这不是我所需要的。我不需要用另一个名称保存这个文件并开始重写它。我只想重写这个文件。我该怎么做?

【问题讨论】:

    标签: symfony monolog


    【解决方案1】:

    您可以为自定义记录器创建自定义处理程序(一天 = 一个日志文件)。

    class FilenameContainsDateStreamHandler extends StreamHandler
    {
    
    public function __construct(
        $stream,
        $level = Logger::DEBUG,
        $bubble = true,
        $filePermission = null,
        $useLocking = false
    ) {
        $stream = str_replace(
            '.log', '-' . date('Y-m-d') . '.log', $stream
        );
    
        parent::__construct(
            $stream,
            $level,
            $bubble,
            $filePermission,
            $useLocking
        );
    }
    }
    

    并重新生成新的记录器

    your.logger:
        class: Symfony\Bridge\Monolog\Logger
        arguments: [your_tag]
        calls:
            - [pushHandler, [@your.monolog.handler]]
    your.monolog.handler:
        class: AppBundle\Monolog\Handler\FilenameContainsDateStreamHandler
        arguments: [%kernel.logs_dir%/your.log]
    

    $this->get('your.logger')->info();

    还有一个

    crm.logger:
        class: Symfony\Bridge\Monolog\Logger
        arguments: [crm_tag]
        calls:
            - [pushHandler, [@crm.monolog.handler]]
    crm.monolog.handler:
        class: AppBundle\Monolog\Handler\FilenameContainsDateStreamHandler
        arguments: [%kernel.logs_dir%/crm.log]
    

    $this->get('crm.logger')->info();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-06
      • 2018-04-23
      • 1970-01-01
      • 2016-04-09
      • 2014-11-04
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多