webman的monolog/monolog日志文件丢失问题

6006284

问题描述

最近查微信支付日志时候,发现少了好多日志,我就把昨天系统里面最早的日志记录下来了,是2024-04-15,今天早上我来看系统,日志文件日期最早变成了2024-04-17,请问下这是怎么回事?系统日志这是覆盖了么,我用的自带的monolog/monolog

// wechat通道
    'wechat' => [
        // 处理默认通道的handler,可以设置多个
        'handlers' => [
            [   
                // handler类的名字
                'class' => Monolog\Handler\RotatingFileHandler::class,
                // handler类的构造函数参数
                'constructor' => [
                    runtime_path() . '/logs/wechat.log',
                    Monolog\Logger::DEBUG,
                ],
                // 格式相关
                'formatter' => [
                    // 格式化处理类的名字
                    'class' => Monolog\Formatter\LineFormatter::class,
                    // 格式化处理类的构造函数参数
                    'constructor' => [ null, 'Y-m-d H:i:s', true],
                ],
            ]
        ],
    ],
300 1 0
1个回答

nitron

Monolog的RotatingFIleHandler有保存指定数量的日志,超过数量的旧日志会被删除
你这个RotatingFileHandler的constructor的参数明显是错的,第二个参数是maxFiles,即保存最近多少个文件,你却用了Monolog\Logger::DEBUG,它的值是100,所以保存最近100个日志

×
🔝