真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ThinkPHP6.0版本的日志變化有哪些

這篇文章主要介紹ThinkPHP6.0版本的日志變化有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司專注于常山企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。常山網(wǎng)站建設(shè)公司,為常山等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

6.0的日志類比之前版本完善了很多,主要新特性包括:

   ·日志信息格式化

   ·多通道寫入支持

   ·延時/實時寫入

   ·日志信息處理事件

   ·日志級別指定通道寫入

   ·支持關(guān)閉日志/通道

新版的日志類最大的變化就是支持多通道寫入,也就是說你可以同時或者給部分日志類型增加另外的日志通道寫入,例如對于一些異常日志可以選擇發(fā)送錯誤到郵件通知。

其它的變化主要包括:

   ·WEB日志和CLI日志合并并統(tǒng)一格式;

   ·默認不再記錄訪問信息,需要可以自己記錄;

   ·獨立日志也支持JSON格式記錄;

日志的相關(guān)配置可以在config/log.php文件中設(shè)置,本篇主要描述下新版日志的變化。

日志通道

日志通道的概念相當(dāng)于給日志信息做了一個日志空間,每個日志通道的日志信息采用獨立的寫入機制或者配置參數(shù),你可以給日志信息指定默認的日志通道,也可以動態(tài)切換通道寫入,并且支持同一個日志信息同時寫入多個日志通道。

你可以在日志配置文件的channels配置中定義通道,默認僅定義了一個file通道。

// 日志通道列表
'channels'     => [
    'file' => [
        // 日志記錄方式
        'type'           => 'File',
        // 日志保存目錄
        'path'           => '',
        // 單文件日志寫入
        'single'         => false,
        // 獨立日志級別
        'apart_level'    => [],
        // 最大日志文件數(shù)量
        'max_files'      => 0,
        // 使用JSON格式記錄
        'json'           => false,
        // 日志輸出格式化
        'format'         => '[%s][%s] %s',
        // 是否實時寫入
        'realtime_write' => false,
    ],
    // 其它日志通道配置
],

每個日志通道必須指定type參數(shù),該參數(shù)決定了日志的寫入方式是什么,file就表示文件日志方式寫入,如果需要指定其它的寫入方式需要安裝額外的擴展。但你也可以給不同的日志通道指定相同的type,只是其它的配置參數(shù)不同,例如寫入的路徑不同之類。

無論使用什么日志寫入類型,每個日志通道可以支持的通用配置如下:

ThinkPHP6.0版本的日志變化有哪些

level參數(shù)的用法和全局日志配置一致,除了在命令行模式下,默認的日志都是在請求結(jié)束后統(tǒng)一一次性寫入,如果需要實時寫入日志信息需要設(shè)置。

'realtime_write'=>true,

如果在命令行下,無論是否設(shè)置都會自動實時寫入日志。

默認通道

通過設(shè)置default參數(shù)定義日志的默認通道,例如:

'default'=>'file',

級別通道

可以設(shè)置不同的日志級別使用不同的日志通道。

'type_channel'=>[
// 對于error日志級別 同時寫入file和email兩個日志通道
'error'=>['file','email'],
]

設(shè)置了級別通道后,該級別的日志不會記錄到默認通道,請注意。

日志通道需要日志驅(qū)動的配合,你也可以自定義日志驅(qū)動。

切換通道

你也可以手動切換當(dāng)前的日志的默認寫入通道,例如:

Log::channel('email')->info('這是日志信息');

支持切換使用多個通道記錄,例如:

Log::channel(['email', 'file'])->info('這是日志信息');

日志處理

日志寫入支持事件監(jiān)聽,例如:

Event::listen('think\event\LogWrite', function($event) {
    if('file' == $event->channel) {
        $event->log['info'][] = 'test info';
    }
});

閉包的參數(shù)是LogWrite事件類對象實例,你可以獲取兩個屬性:

ThinkPHP6.0版本的日志變化有哪些

日志信息是一個二維數(shù)組,包含了當(dāng)前日志通道下(允許記錄的)所有級別的日志信息。

格式化日志信息

系統(tǒng)提供了兩個參數(shù)用于日志信息的格式化,第一個是用于自定義時間顯示格式的time_format,第二個是調(diào)整日志輸出格式的format參數(shù)。

'channels'    =>    [
    'file'    =>    [
        'type'          => 'file', 
        'json'        =>true
        'file_size'   => 1024*1024*10,    
        'time_format'   =>    'Y-m-d H:i:s',
        'format'        =>    '[%s][%s]:%s',
    ],
],

format參數(shù)的第一個%s是日志記錄時間(日志時間的格式化由time_format參數(shù)定義) 第二個%s是日志級別 第三個%s是日志信息,順序不能調(diào)整。

JSON格式日志

可以支持JSON格式記錄文件日志,更加方便一些第三方日志分析工具進行日志分析。

在日志配置文件中,添加

return [
    'default'      => 'file',
    'channels'    =>    [
        'file'    =>    [
            'type'          => 'file', 
            'json'        =>true
            'file_size'   => 1024*1024*10,    
        ],
    ],
];

即可開啟JSON格式記錄,CLI命令行的日志記錄同樣有效。

和之前版本的區(qū)別在于,新版的每個日志信息都是一條JSON數(shù)據(jù)(舊版本是每個請求一條JSON數(shù)據(jù))。

關(guān)閉日志

你可以通過調(diào)用close方法動態(tài)關(guān)閉日志寫入。

// 關(guān)閉全局日志寫入
Log::close();
// 關(guān)閉某個通道日志寫入
Log::close('file');

如果調(diào)用close方法動態(tài)關(guān)閉日志,會自動調(diào)用clear方法清空日志。

清空日志

一旦執(zhí)行save方法后,內(nèi)存中的日志信息就會被自動清空,如果需要提前清空日志可以使用:

// 清空所有日志
Log::clear();
//清空通道日志可以使用
Log::clear('file');

在清空日志方法之前,你可以使用getLog方法獲取內(nèi)存中的日志。

// 獲取(默認通道)日志
$logs = Log::getLog();
// 獲取指定通道日志
$logs = Log::getLog('file');

日志清空僅僅是清空內(nèi)存中的日志。

自定義驅(qū)動

日志通道需要自定義日志驅(qū)動,該日志驅(qū)動需要實現(xiàn)think\contract\LogHandlerInterface接口。

interface LogHandlerInterface
{
    /**
     * 日志寫入接口
     * @access public
     * @param  array $log 日志信息
     * @return bool
     */
    public function save(array $log): bool;
}

以上是“ThinkPHP6.0版本的日志變化有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享題目:ThinkPHP6.0版本的日志變化有哪些
網(wǎng)站URL:http://weahome.cn/article/pdhhej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部