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

时间:2012-12-23 21:44:13

标签: php cakephp cakephp-2.0

通过更改/Cake/Log/Engine/Filelog.php的写入功能,我可以更改“error.log”和“debug.log”文件名。

有没有办法在不破解CakePHP 2核心文件的情况下更改这些文件名。

5 个答案:

答案 0 :(得分:2)

自CakePHP 2.4.0起,此功能已添加:http://bakery.cakephp.org/articles/markstory/2013/08/30/cakephp_2_4_0_is_ready

  

FileLogs现在可以配置最大尺寸和简单旋转。

Filelog类具有文件大小限制和要轮换的文件数。

答案 1 :(得分:1)

在上面的评论中,您说过您想要更改这些日志文件名称的原因是因为相关文件没有大小限制。问题是:如果你有一个2MB大小的错误日志,那么你显然有更大的鱼来炸。据我所知,没有黑客核心就无法更改这些文件名。如果您真的担心这两个日志文件的大小,那么 可以 设置一个cronjob,每24小时检查一次这两个文件的大小。如果日志文件大小超过您设置的预定限制,您可以向自己发送警报电子邮件。老实说:最好的方法是事先广泛测试你的应用程序,这样两个文件中的任何条目都会成为一个惊喜,而不是例程。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

在cake 3中你可以在/config/app.php中轻松设置rotate config

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

答案 4 :(得分:0)

在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',
));