YII2 对于日志进行不同日期分开管理 [ 2.0 版本 ]
进入 \vendor\yiisoft\yii2\log\FileTarget.php
第一步:定义变量:
只为扩展,这个根据需要,我建议添加,配置你需要对应的格式就好了
/**
* @var 日志是以日期文件夹区分还是以日期下标开头,默认为日期下标拼接.
* Log is divided by date folder or date index, and default is date index stitching
*
* annotationChinese:这个参数因人而异,我只做扩展,可不用。如果你要写死一种格式,那么不用添加这个变量就好了。
* annotationEnglish:This parameter varies from person to person, and I just do extensions without using it.
* If you want to write a dead form, you don't have to add this variable.
*/
public $file_type = 0;
第二步:修改init内置方法为:
public function init(){
parent::init();
if ($this->logFile === null) {
$this->logFile = Yii::$app->getRuntimePath() . '/logs/app.log';
} else {
/**
* 对日志进行日期文件夹管理 开始
*/
$arr = explode('/', $this->logFile);
$logfile_name = $arr[count($arr)-1];
if($this->file_type == 0){ //日期格式开头拼接
$this->logFile = iconv("UTF-8", "GBK", str_replace($logfile_name, date('Y-m-d').'_'.$logfile_name, $this->logFile));
}else{ //日期文件夹区分
$dir = iconv("UTF-8", "GBK", str_replace($logfile_name, date('Y-m-d'), $this->logFile));
if(!file_exists($dir)) mkdir ($dir,0777,true);
$this->logFile = $dir.'/'.$logfile_name;
}
unset($logfile_name, $arr);
/**
* 对日志进行日期文件夹管理 结束
*/
$this->logFile = Yii::getAlias($this->logFile);
}
$logPath = dirname($this->logFile);
if (!is_dir($logPath)) FileHelper::createDirectory($logPath, $this->dirMode, true);
if ($this->maxLogFiles < 1) $this->maxLogFiles = 1;
if ($this->maxFileSize < 1) $this->maxFileSize = 1;
}
配置完毕!
使用方式:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning', 'info'],
'logFile' => '',
'file_type' => 0,//设置文件存储的格式就好了 0:日期下划线拼接;1:日期文件夹区分
],
],
],
小丑路人
注册时间:2016-12-11
最后登录:2023-07-26
在线时长:7小时32分
最后登录:2023-07-26
在线时长:7小时32分
- 粉丝1
- 金钱510
- 威望20
- 积分780
共 2 条评论
本来用个匿名方法就行了,你倒好直接改了框架,还升级吗?
以前随便改的玩
本来用个匿名方法就行了,你倒好直接改了框架,还升级吗?