【小(xiǎo)編推薦】ThinkPHP3.2——日(rì)志(zhìα )記錄

2014-06-26  δ¥÷↔; |   發布者:梁國(>±guó)芳   |  &nbβ©sp;查看(kàn):3320次

Thinkphp

日(rì)志(zhì)的(de)處理(lǐ)工(gōng)作(zuò)是(s<♠hì)由系統自(zì)動進行(xíng)的(de),在開 δ(kāi)啓日(rì)志(zhì)記錄的(de)情況下(xi™♣à),會(huì)記錄下(xià)允許的≤€≥(de)日(rì)志(zhì)級别的(de)所有(yǒu)日(rì)志(δ÷↕♥zhì)信息。

其中,為(wèi)了(le)性能(néng)考慮,SQL日​↓γ‌(rì)志(zhì)級别必須在調試模式開(kāi)啓♠↑下(xià)有(yǒu)效,否則就(jiù)不(bù)會(huì)記錄。 ↕‌系統的(de)日(rì)志(zhì)記錄由≤&π​核心的(de)Think\Log類及其驅動完成,提供了(le&₩★↑)多(duō)種方式記錄了(le)不(bù)同的(de)級别的(d‍λγ e)日(rì)志(zhì)信息。

默認情況下(xià)隻是(shì)在調試模式記錄日(rì)志(zhì),∏✔←要(yào)在部署模式開(kāi)啓日(✔"rì)志(zhì)記錄,必須在配置中開(ε×↓kāi)啓LOG_RECORD參數(shù),以及可(kě)以在應用(yòng)配置文(wén)件(j×✘iàn)中配置需要(yào)記錄的(de)日(rì)志(zhì)級别λσ✔,例如(rú):

  1. 'LOG_RECORD' => true, // 開(kāi)啓日(rì)志(zhì)記錄↓♣φΩ
  2. 'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 隻記錄EMERG ALERT CRIT ERR 錯(cu÷↕↑ò)誤

日(rì)志(zhì)的(de)記錄并非實時(shí)保存± ±∑的(de),隻有(yǒu)當當前請(qǐng)求完₩ 成或者異常結束後才會(huì)實際寫入日(rì)志(zhì)信息♦φ★↑,否則隻是(shì)記錄在內(nèi)存中。

日(rì)志(zhì)級别

ThinkPHP對(duì)系統的(de)日(rì)志(zhì)按照(zh®≠πào)級别來(lái)分(fēn)類,包括:

記錄方式

日(rì)志(zhì)的(de)記錄方式默認是(shì)文(wén)件(j★••±iàn)方式,可(kě)以通(tōng)過驅動的(de)方式來(l¥₩ái)擴展支持更多(duō)的(de)記錄方式。

記錄方式由LOG_TYPE參數(shù)配置,例如(rú):

  1. 'LOG_TYPE' => 'File', // 日(rì)志(zhì)記錄類型 默認為(wèi)文(wén)件(jiàn ↔)方式

File方式記錄,對(duì)應的(de)驅動文(wén)件(jiàn≈→)位于系統的(de)Library/Think/Log/Drive≥$≠r/File.class.php

手動記錄

一(yī)般情況下(xià),系統的(de)日(rì"♦Ω∏)志(zhì)記錄是(shì)自(zì)動的(de),無需手動記錄,但(dàn≠→)是(shì)某些(xiē)時(shí)候也(yě)需要(yào)手‍∑動記錄日(rì)志(zhì)信息,Logσ$類提供了(le)3個(gè)方法用(yòn♣©g)于記錄日(rì)志(zhì)。

方法 描述
Log::record() 記錄日(rì)志(zhì)信息到(dào)內(nè↕<★i)存
Log::save() 把保存在內(nèi)存中的(de)日(rì)志(zhì)信息(用(&‍♣‍yòng)指定的(de)記錄方式)寫入
Log::write() 實時(shí)寫入一(yī)條日(rì)志(zhìαπ)信息

由于系統在請(qǐng)求結束後會(huì)自(zì)¥$≈動調用(yòng)Log::save方法,所以♣→ 通(tōng)常,你(nǐ)隻需要(yào)調用(×£$yòng)Log::record記錄日(rì)志(zhì)信息即可÷α&(kě)。

record方法用(yòng)法如(rú)下(xià):

  1. Think\Log::record('測試日(rì)志(zhì)信息');

默認的(de)話(huà)記錄的(de)日(rì)志(zhì)級别ε→♣®是(shì)ERR,也(yě)可(kě)以指定日(rì)志(zh£≤γ'ì)級别:

  1. Think\Log::record('測試日(rì)志(zhì)信息,這(zhè)是(shì)警告級别','WARN');

record方法隻會(huì)記錄當前配置允許記錄的(de)日(rì)志λ€πδ(zhì)級别的(de)信息,如(rú)果應用(yòn↓§¶g)配置為(wèi):

  1. 'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 隻記錄EMERG ALERT CRIT ERR 錯(↔↓cuò)誤

那(nà)麽上(shàng)面的(de)record方法記錄的(de)日(r♠×≈¥ì)志(zhì)信息會(huì)被直接過濾,或者€®你(nǐ)可(kě)以強制(zhì)記錄:

  1. Think\Log::record('測試日(rì)志(zhì)信息,這(zhè)是(shì)警告級✘↓别','WARN',true);

采用(yòng)record方法記錄的(de↑>)日(rì)志(zhì)信息不(bù)是(shì)實時(shí)保¥✘✘存的(de),如(rú)果需要(yào)✔$₽™實時(shí)記錄的(de)話(huà),<♦可(kě)以采用(yòng)write方法,例如(rú):

  1. Think\Log::write('測試日(rì)志(zhì)信息,這(zhè)是(shì)警告級别,并且實時&&"₹(shí)寫入','WARN');

write方法寫入日(rì)志(zhì)的(de)時(shí)候 不(bù)‌×∞ 受配置的(de)允許日(rì)志(zhì)級别影(yǐng)響,可(kě)以δ♥實時(shí)寫入任意級别的(de)日(rì)志(zhì)信息。