类别: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网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章