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

CakePHP更改error.log或debug.log文件名,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,通过更改的写入函数,我可以更改“error.log”和“debug.log”文件名 是否有任何方法可以在不破坏CakePHP 2核心文件的情况下更改这些文件名。在上面的评论中,您说您想要更改这些日志文件名的原因是因为所讨论的文件没有大小限制。问题是:如果你有一个2MB大小的错误日志,那么你显然有更大的问题要解决。据我所知,如果不破解内核,就无法更改这些文件名。如果您真的担心这两个日志文件的大小,那么您可以设置一个cronjob,每24小时检查一次这两个文件的大小。如果日志文件大小大于您设置的预定

通过更改的写入函数,我可以更改“error.log”和“debug.log”文件名


是否有任何方法可以在不破坏CakePHP 2核心文件的情况下更改这些文件名。

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

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

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

没有内置的配置来获取所需的内容。但是,您可以轻松地创建自定义记录器类,该类扩展了
FileLog
,并重写相关函数并使用该函数。

从CakePHP 2.4.0开始,添加了此功能:

文件日志现在可以配置最大大小和简单旋转


类具有文件大小限制和要旋转的文件数。

自CakePHP 2.4.0起,添加了此功能:

文件日志现在可以配置最大大小和简单旋转


类具有文件大小限制和要旋转的文件数。

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

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

在cake 3中,您可以在/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',
));

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

你为什么要这么做?它们包含错误和调试信息,看起来很合适。您可以创建其他日志文件,即
CakeLog::write('my_log','message')
和cake将创建一个名为
my_log
)的日志文件,因为不存在大小限制。如果我不在乎2周,我有一个2兆字节的error.log文件。我想将日期(“d-m-Y”)添加到文件名中。然后,您应该使用与logrotate类似的方法。将其内容移动到“error-x.log”文件中,保留最新的主文件原样:name“error.log”“。例如,您可以使用crontask cronjob定期执行此操作。这里不需要将此开销放入应用程序层。为什么要这样做?它们包含错误和调试信息,看起来很合适。您可以创建其他日志文件,即
CakeLog::write('my_log','message')
和cake将创建一个名为
my_log
)的日志文件,因为不存在大小限制。如果我不在乎2周,我有一个2兆字节的error.log文件。我想将日期(“d-m-Y”)添加到文件名中。然后,您应该使用与logrotate类似的方法。将其内容移动到“error-x.log”文件中,保留最新的主文件原样:name“error.log”。例如,您可以使用crontask cronjob定期执行此操作。无需将此开销放入应用程序层。