Zend 2 旋转日志记录


Zend 2 Rotate logging

我使用 Zend Log 将信息记录到我的日志文件中。我期待一种自动写入每月日志文件的方法,如日志文件201601.log、logile201602.log等。

有没有办法实现这一目标?任何提示或教程?在我目前的研究中没有发现类似的东西。

我目前的配置:

'factories' => array(
        'Zend'Db'Adapter'Adapter' => 'Zend'Db'Adapter'AdapterServiceFactory',
        'Zend'Log' => function ($sm) {
                $logger = new Zend'Log'Logger(array(
                    'writers' => array(
                        'stream' => array(
                            'name' => 'stream',
                            'options' => array(
                                'stream' => './data/log/logfile2016.log',
                                'formatter' => array(
                                    'name' => 'simple',
                                    'options' => array(
                                        'dateTimeFormat' => 'Y-m-d H:i:s'
                                    )
                                )
                            )
                        )
                    )
                ));
                return $logger;
        },
);

因为Zend会自动创建日志文件,所以你可以使用date()函数动态创建你的日志文件:

// ...
'stream' => './data/log/logfile'.date("Ym").'.log',
// ...

请注意,log目录必须是可写的。