日(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ú):
'LOG_RECORD' => true, // 開(kāi)啓日(rì)志(zhì)記錄↓♣φΩ'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)類,包括:
- EMERG 嚴重錯(cuò)誤,導緻系統崩潰無法使用(yòng)
- ALERT 警戒性錯(cuò)誤, 必須被立即修改的(de)錯(cu$•ò)誤
- CRIT 臨界值錯(cuò)誤, 超過臨界值的(de)錯(c™•uò)誤
- ERR 一(yī)般性錯(cuò)誤
- WARN 警告性錯(cuò)誤, 需要(yào)發出警告的(d↑ δe)錯(cuò)誤
- NOTICE 通(tōng)知(zhī),程序可(kě)♠•φ¶以運行(xíng)但(dàn)是(shì)還(hái)不(b¶>&↔ù)夠完美(měi)的(de)錯(cuò)誤
- INFO 信息,程序輸出信息
- DEBUG 調試,用(yòng)于調試信息
- SQL SQL語句,該級别隻在調試模式開(kāi)啓時(shí)有(y∞ε× ǒu)效
記錄方式
日(rì)志(zhì)的(de)記錄方式默認是(shì)文(wén)件(j★••±iàn)方式,可(kě)以通(tōng)過驅動的(de)方式來(l¥₩ái)擴展支持更多(duō)的(de)記錄方式。
記錄方式由LOG_TYPE參數(shù)配置,例如(rú):
'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à):
Think\Log::record('測試日(rì)志(zhì)信息');
默認的(de)話(huà)記錄的(de)日(rì)志(zhì)級别ε→♣®是(shì)ERR,也(yě)可(kě)以指定日(rì)志(zh£≤γ'ì)級别:
Think\Log::record('測試日(rì)志(zhì)信息,這(zhè)是(shì)警告級别','WARN');
record方法隻會(huì)記錄當前配置允許記錄的(de)日(rì)志λ€πδ(zhì)級别的(de)信息,如(rú)果應用(yòn↓§¶g)配置為(wèi):
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 隻記錄EMERG ALERT CRIT ERR 錯(↔↓cuò)誤
那(nà)麽上(shàng)面的(de)record方法記錄的(de)日(r♠×≈¥ì)志(zhì)信息會(huì)被直接過濾,或者€®你(nǐ)可(kě)以強制(zhì)記錄:
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ú):
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ì)信息。




