gpt4 book ai didi

php - 自定义 codeigniter log_message() 的日志文件名

转载 作者:可可西里 更新时间:2023-11-01 13:37:14 24 4
gpt4 key购买 nike

在 CodeIgniter 2.1.0 中,是否可以自定义 log_message() 生成的日志文件名?默认情况下,它的文件名是根据当前日期生成的。

最佳答案

log_message() 函数是常用的系统函数。它使用 Log::write_log() 方法记录错误。它不好破解核心文件。因此,您可以扩展 Log 库并覆盖 write_log() 函数。

如果您还没有扩展您的 Log 类。创建文件 application/libraries/MY_Log.php

class MY_Log extends CI_Log  {

function MY_Log ()
{
parent::__construct();

$this->ci =& get_instance();
}

public function write_log() { //here overriding
if ($this->_enabled === FALSE)
{
return FALSE;
}

$level = strtoupper($level);

if ( ! isset($this->_levels[$level]) OR
($this->_levels[$level] > $this->_threshold))
{
return FALSE;
}

/* HERE YOUR LOG FILENAME YOU CAN CHANGE ITS NAME */
$filepath = $this->_log_path.'log-'.date('Y-m-d').EXT;
$message = '';

if ( ! file_exists($filepath))
{
$message .= "<"."?php if ( ! defined('BASEPATH'))
exit('No direct script access allowed'); ?".">\n\n";
}

if ( ! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
{
return FALSE;
}

$message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' ';
$message .= date($this->_date_fmt). ' --> '.$msg."\n";

flock($fp, LOCK_EX);
fwrite($fp, $message);
flock($fp, LOCK_UN);
fclose($fp);

@chmod($filepath, FILE_WRITE_MODE);
return TRUE;
}
}

log_message() 函数将按您的意愿工作

关于php - 自定义 codeigniter log_message() 的日志文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9971305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com