我在CodeIgniter中将限制设置为log_message
时出现问题,
我想用
$config['log_file_permissions'] = 0644;
这不起作用。
在600行日志消息之后,我想创建新文件。有人可以帮帮我吗?
答案 0 :(得分:0)
问 - 在600行日志消息之后,我想创建新文件 A - CI还没有这种功能
CI可以对要在日志文件中写入哪些数据进行分类。 (例如:错误消息,调试消息,信息......)
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
| array(2) = Debug Messages, without Error Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
答案 1 :(得分:0)
您可以扩展system/core/Log.php
并覆盖write_log($level, $msg)
方法。
主要任务是更改命名日志文件的方案。
CI_Log
类使用以下内容作为当前文件的名称。
$filepath = $this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext;
这基本上意味着任何一天都有一个日志文件。但是,您所需的功能可能会导致一天中有多个文件。我没有一个优雅的方法来解决这部分问题。答案取决于您希望如何命名其他日志文件。将“_1”,“_ 2”,“_ n”附加到date('Y-m-d')
是一种可能性。同样,我没有提供确定要使用的正确“子日”版本的方法。
但是,一旦你弄明白当前文件是什么,确定文件中的行数是微不足道的。
$file="current_log_file_name";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
$linecount++;
}
fclose($handle);
如果$linecount > 600
然后创建一个新文件,则使用“current_log_file_name”。