使用記錄器庫(kù)-如何以Ruby編寫日志消息
使用Ruby中的記錄器庫(kù)是跟蹤代碼出現(xiàn)問題的簡(jiǎn)單方法。如果出現(xiàn)問題,詳細(xì)說(shuō)明導(dǎo)致錯(cuò)誤的確切事件可以節(jié)省您數(shù)小時(shí)查找錯(cuò)誤。隨著程序越來(lái)越大,越來(lái)越復(fù)雜,您可能需要添加一種寫入日志消息的方法。Ruby提供了許多有用的類和庫(kù),稱為標(biāo)準(zhǔn)庫(kù)。其中包括記錄器庫(kù),它提供優(yōu)先級(jí)和旋轉(zhuǎn)日志記錄。
基本用法
由于記錄器庫(kù)附帶Ruby,因此不需要安裝任何GEM或其他庫(kù)。要開始使用記錄器庫(kù),只需需要'記錄器'并創(chuàng)建一個(gè)新的記錄器對(duì)象。寫入記錄器對(duì)象的任何消息都將寫入日志文件。
#!/usr/bin/env ruby
require'記錄器'
log=記錄器(&)39;log.txt')
log.debug"創(chuàng)建日志文件"
優(yōu)先級(jí)
每個(gè)日志消息都有優(yōu)先級(jí)。這些優(yōu)先級(jí)使得搜索日志文件中的嚴(yán)重消息變得簡(jiǎn)單,并且當(dāng)它們不需要時(shí),記錄器對(duì)象自動(dòng)過(guò)濾掉較小的消息。你可以認(rèn)為這有點(diǎn)像你當(dāng)天的待辦事項(xiàng)清單。有些事情**必須完成,有些事情真的應(yīng)該完成,有些事情可以推遲到你有時(shí)間做。
在前一個(gè)示例中,優(yōu)先級(jí)為debug,這是所有優(yōu)先級(jí)中最不重要的(如果您愿意,您的待辦列表中的"推遲到您有時(shí)間")。日志消息優(yōu)先級(jí)從最小到最重要的順序如下:debug,info,warn,error和fatal。要設(shè)置記錄器應(yīng)忽略的消息級(jí)別,請(qǐng)使用level屬性。
#!/usr/bin/env ruby
require'記錄器'
log=記錄器(&)39;log.txt')
日志級(jí)=記錄器::警告
log.debug"這將被忽略"
日志錯(cuò)誤"這不會(huì)被忽略"
您可以創(chuàng)建盡可能多的日志消息,并且可以記錄程序所做的每一件小事情,這使得優(yōu)先級(jí)非常有用。當(dāng)您'重新運(yùn)行程序時(shí),您可以將記錄器級(jí)別保留在警告或錯(cuò)誤等內(nèi)容上以捕獲重要內(nèi)容。然后,如果出現(xiàn)問題,您可以降低記錄器級(jí)別(在源代碼中或使用命令行開關(guān))以獲取更多信息。
Rotation
記錄器庫(kù)還支持日志旋轉(zhuǎn)。日志旋轉(zhuǎn)可防止日志變得太大,并有助于搜索舊日志。啟用日志旋轉(zhuǎn)并且日志達(dá)到一定大小或特定年齡時(shí),記錄器庫(kù)將重命名該文件并創(chuàng)建新的日志文件。舊的日志文件也可以配置為在某個(gè)年齡之后刪除(or"退出旋轉(zhuǎn)")。
要啟用日志旋轉(zhuǎn),請(qǐng)向記錄器生成器傳遞科普病毒'每月','每周',或'每日'??蛇x地,您可以傳遞最大文件大小和文件數(shù)量以保持循環(huán)給生成器。
#!/usr/bin/env ruby
require'記錄器'
log=記錄器(&)39;log.txt','每日')
log.debug"一旦日志至少變?yōu)橐粋€(gè)"
log.debug"日齡,它將被重命名并且a"
log.debug"新日志文件將被創(chuàng)建。"