类别:ThinkPHP / 日期:2019-12-17 / 浏览:169 / 评论:0

6.0的日记类比之前版本完美了许多,重要新特征包括:
·日记信息花样化
·多通道写入支撑
·延时/及时写入
·日记信息处置惩罚事宜
·日记级别指定通道写入
·支撑封闭日记/通道
新版的日记类最大的变化就是支撑多通道写入,也就是说你能够同时或许给部份日记范例增添别的的日记通道写入,比方关于一些非常日记能够挑选发送毛病到邮件关照。
别的的变化重要包括:
·WEB日记和CLI日记合并并一致花样;
·默许不再纪录接见信息,须要能够本身纪录;
·自力日记也支撑JSON花样纪录;
日记的相干设置能够在config/log.php文件中设置,本篇重要形貌下新版日记的变化。
日记通道
日记通道的观点相当于给日记信息做了一个日记空间,每一个日记通道的日记信息采纳自力的写入机制或许设置参数,你能够给日记信息指定默许的日记通道,也能够动态切换通道写入,而且支撑同一个日记信息同时写入多个日记通道。
你能够在日记设置文件的channels设置中定义通道,默许仅定义了一个file通道。
// 日记通道列表 'channels' => [ 'file' => [ // 日记纪录体式格局 'type' => 'File', // 日记保留目次 'path' => '', // 单文件日记写入 'single' => false, // 自力日记级别 'apart_level' => [], // 最大日记文件数目 'max_files' => 0, // 运用JSON花样纪录 'json' => false, // 日记输出花样化 'format' => '[%s][%s] %s', // 是不是及时写入 'realtime_write' => false, ], // 别的日记通道设置 ],
每一个日记通道必需指定type参数,该参数决议了日记的写入体式格局是什么,file就示意文件日记体式格局写入,假如须要指定别的的写入体式格局须要装置分外的扩大。但你也能够给差别的日记通道指定雷同的type,只是别的的设置参数差别,比方写入的途径差别之类。
不管运用什么日记写入范例,每一个日记通道能够支撑的通用设置以下:
level参数的用法和全局日记设置一致,除了在命令行形式下,默许的日记都是在要求完毕后一致一次性写入,假如须要及时写入日记信息须要设置。
'realtime_write'=>true,
假如在命令行下,不管是不是设置都邑自动及时写入日记。
默许通道
经由过程设置default参数定义日记的默许通道,比方:
'default'=>'file',
级别通道
能够设置差别的日记级别运用差别的日记通道。
'type_channel'=>[ // 关于error日记级别 同时写入file和email两个日记通道 'error'=>['file','email'], ]
设置了级别通道后,该级别的日记不会纪录到默许通道,请注意。
日记通道须要日记驱动的合营,你也能够自定义日记驱动。
切换通道
你也能够手动切换当前的日记的默许写入通道,比方:
Log::channel('email')->info('这是日记信息');
支撑切换运用多个通道纪录,比方:
Log::channel(['email', 'file'])->info('这是日记信息');
日记处置惩罚
日记写入支撑事宜监听,比方:
Event::listen('think\event\LogWrite', function($event) { if('file' == $event->channel) { $event->log['info'][] = 'test info'; } });
闭包的参数是LogWrite事宜类对象实例,你能够猎取两个属性:
日记信息是一个二维数组,包括了当前日记通道下(许可纪录的)一切级别的日记信息。
花样化日记信息
体系供应了两个参数用于日记信息的花样化,第一个是用于自定义时候显现花样的time_format,第二个是调解日记输出花样的format参数。
'channels' => [ 'file' => [ 'type' => 'file', 'json' =>true 'file_size' => 1024*1024*10, 'time_format' => 'Y-m-d H:i:s', 'format' => '[%s][%s]:%s', ], ],
format参数的第一个%s是日记纪录时候(日记时候的花样化由time_format参数定义) 第二个%s是日记级别 第三个%s是日记信息,递次不能调解。
JSON花样日记
能够支撑JSON花样纪录文件日记,越发轻易一些第三方日记剖析东西举行日记剖析。
在日记设置文件中,增加
return [ 'default' => 'file', 'channels' => [ 'file' => [ 'type' => 'file', 'json' =>true 'file_size' => 1024*1024*10, ], ], ];
即可开启JSON花样纪录,CLI命令行的日记纪录一样有用。
和之前版本的区分在于,新版的每一个日记信息都是一条JSON数据(旧版本是每一个要求一条JSON数据)。
封闭日记
你能够经由过程挪用close要领动态封闭日记写入。
// 封闭全局日记写入 Log::close(); // 封闭某个通道日记写入 Log::close('file');
假如挪用close要领动态封闭日记,会自动挪用clear要领清空日记。
清空日记
一旦实行save要领后,内存中的日记信息就会被自动清空,假如须要提早清空日记能够运用:
// 清空一切日记 Log::clear(); //清空通道日记能够运用 Log::clear('file');
在清空日记要领之前,你能够运用getLog要领猎取内存中的日记。
// 猎取(默许通道)日记 $logs = Log::getLog(); // 猎取指定通道日记 $logs = Log::getLog('file');
日记清空仅仅是清空内存中的日记。
自定义驱动
日记通道须要自定义日记驱动,该日记驱动须要完成think\contract\LogHandlerInterface接口。
interface LogHandlerInterface { /** * 日记写入接口 * @access public * @param array $log 日记信息 * @return bool */ public function save(array $log): bool; }
浩瀚ThinkPHP教程,尽在ki4网,迎接在线进修!
本文转自:https://blog.thinkki4.cn/1186947
以上就是ThinkPHP6.0版本的日记变化的细致内容,更多请关注ki4网别的相干文章!