CakePHP更改error.log或debug.log文件名


CakePHP change error.log or debug.log file name

通过更改/Cake/Log/Engine/Filelog.php的write函数,我可以更改"error.log"answers"debug.log"文件名。

是否有办法改变这些文件名而不黑客CakePHP 2核心文件

从CakePHP 2.4.0开始添加此功能:http://bakery.cakephp.org/articles/markstory/2013/08/30/cakephp_2_4_0_is_ready

文件日志现在可以有一个最大大小和简单的旋转配置。

Filelog类有文件大小限制和旋转文件数量

在您上面的评论中,您说您想要更改这些日志文件名称的原因是因为所讨论的文件没有大小限制。问题是:如果您有一个大小为2MB的错误日志,那么您显然有更大的麻烦要处理。据我所知,要想更改文件名就必须侵入核心系统。如果您确实担心这两个日志文件的大小,那么您可以设置一个cronjob,每24小时检查这两个文件的大小。如果日志文件的大小大于您设置的预定限制,您可以向自己发送警报电子邮件。老实说:最好的方法是事先对应用程序进行广泛的测试,以便这两个文件中的任何条目都成为一个意外,而不是例行程序。

没有内置配置来获得您想要的。但是,您可以轻松地创建自定义记录器类,它扩展FileLog并覆盖相关函数并使用它。

可以在/config/app.php中轻松设置旋转配置

'Log' => [
     'error' => [
          'className' => 'Cake'Log'Engine'FileLog',
          'rotate'=>2,
           //other config

在CakePHP 2中,您可以在/app/config/bootstrap.php中更改相同的配置:

CakeLog::config('debug', array(
    'engine' => 'File',
    'types' => array('notice', 'info', 'debug'),
    'file' => 'debug',
));
CakeLog::config('error', array(
    'engine' => 'File',`enter code here`
    'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
    'file' => 'error',
));