針對(duì)全棧開發(fā)者設(shè)計(jì)的實(shí)戰(zhàn)教程,本文聚焦LuatOS平臺(tái)log庫的高效使用,從基礎(chǔ)配置到高級(jí)調(diào)試策略,手把手教你搭建可擴(kuò)展的日志系統(tǒng),提升項(xiàng)目維護(hù)效率。
今天,我們一起來認(rèn)識(shí)LuatOS的log庫!

一、 log.info()
log info()主要打印一些正常的信息。比如,記錄程序的啟動(dòng)信息、某個(gè)模塊的初始化完成、重要業(yè)務(wù)流程的執(zhí)行等。
我們利用log.info(),可以清晰了解程序的執(zhí)行順序。

tag為日志標(biāo)識(shí),標(biāo)識(shí)日志來自哪個(gè)模塊或功能。
比如:在一個(gè)包含多個(gè)子系統(tǒng)的應(yīng)用程序中,為每個(gè)子系統(tǒng)的日志添加相應(yīng)的標(biāo)簽,開發(fā)人員就能快速定位到問題所在的模塊。
在一個(gè)復(fù)雜的Lua腳本里,使用log.info() 函數(shù)在關(guān)鍵代碼位置,設(shè)置輸出信息,就能知道程序是否按預(yù)期順序執(zhí)行。
如果你想在程序開頭看是否會(huì)記錄到模塊初始化,代碼可以這樣寫:

當(dāng)模塊完成初始化,就能在日志打印里看到相關(guān)信息了。
二、 log.debug()
log.debug()主要用在開發(fā)和調(diào)試階段,記錄詳細(xì)的調(diào)試信息。
這些信息方便我們理解程序的執(zhí)行流程、變量的變化。在開發(fā)完成后,可以根據(jù)需要關(guān)閉這些調(diào)試信息,以減少日志量和提高性能。

具體使用場(chǎng)景如下:

當(dāng)程序執(zhí)行到log.debug("進(jìn)入add函數(shù),a = ".. a.. ", b = ".. b)時(shí),它會(huì)輸出一條日志,明確顯示程序已經(jīng)進(jìn)入了add函數(shù)。
三、log.warn()
log.warn()主要用于記錄一些警告信息,表示程序遇到了一些可能存在潛在的風(fēng)險(xiǎn),還沒有導(dǎo)致程序出錯(cuò),但可能需要我們關(guān)注的部分。

比如:當(dāng)文件大小超過1MB,你想輸出一條警告信息提醒用戶,你就可以在代碼中使用log.warn()。

當(dāng)文件大小超過1MB時(shí),程序就會(huì)執(zhí)行l(wèi)og.warn()這行代碼,輸出一條警告信息,提醒開發(fā)者注意下文件大小。
四、 log.error()
log.error()主要用于記錄錯(cuò)誤信息,當(dāng)程序發(fā)生錯(cuò)誤或異常情況時(shí),使用這個(gè)函數(shù)來記錄相關(guān)的錯(cuò)誤信息,以便開發(fā)者能夠快速定位和解決問題。

具體應(yīng)用場(chǎng)景:

當(dāng)除數(shù)為0時(shí),輸出錯(cuò)誤信息:除數(shù)不能為0。
五、log.setLevel()
以上是我們常用到的幾種日志類型。但有時(shí)候,debug是調(diào)試時(shí)用到的,并不想讓用戶看到我們的debug類型日志,難道要一個(gè)一個(gè)刪除嗎?
不用!我們可以用log.setLevel()函數(shù)設(shè)置日志級(jí)別。
在LuatOS的log庫中,日志有如下幾種類型:
LOG_SILENT(無日志模式)
LOG_DEBUG(debug日志模式)
LOG_INFO(info日志模式)
LOG_WARN(warning日志模式)
LOG_ERROR(error日志模式)
日志級(jí)別從低到高依次為:DEBUG < INFO < WARN < ERROR
只有日志級(jí)別大于或等于當(dāng)前設(shè)置的級(jí)別時(shí),該日志才會(huì)被輸出。
比如日志設(shè)置為INFO級(jí)別時(shí):DEBUG級(jí)別的日志不會(huì)輸出,而INFO、WARN、ERROR級(jí)別的日志會(huì)輸出。

比如:想設(shè)置為INFO日志模式,不要輸出debug日志信息,代碼就這樣寫:

其余模式同理。
六、log.getLevel()
如果想要獲取到當(dāng)前設(shè)置的日志級(jí)別,我們就需要用到 log.getLevel()函數(shù)。

示例如下:

七、log.style()
設(shè)置日志風(fēng)格,需要使用到log.style(val)函數(shù)。
LuatOS的log庫提供了3種日志風(fēng)格,分別為:默認(rèn)風(fēng)格0;調(diào)試風(fēng)格1;調(diào)試風(fēng)格2。
這幾種方式的日志呈現(xiàn)形式不同,根據(jù)個(gè)人習(xí)慣調(diào)整。

示例如下:

以log.info("ABC", "DEF", 123) 為例, 假設(shè)該代碼位于main.lua的12行。
那么三種風(fēng)格的輸出樣式為:
默認(rèn)風(fēng)格0的輸出樣式為:I/user.ABC DEF 123
調(diào)試風(fēng)格1的輸出樣式為:I/main.lua:12 ABC DEF 123
對(duì)比默認(rèn)風(fēng)格0,增加了文件名和代碼所在行數(shù)。
調(diào)試風(fēng)格2的輸出樣式為:I/user.ABC main.lua:12 DEF 123
對(duì)比其他風(fēng)格,信息位置排放有所區(qū)別。
關(guān)于log庫的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
全棧工程師
+關(guān)注
關(guān)注
0文章
4瀏覽量
1022 -
LuatOS
+關(guān)注
關(guān)注
0文章
156瀏覽量
2702
發(fā)布評(píng)論請(qǐng)先 登錄
全棧開發(fā)進(jìn)階指南:LuatOS-log庫從入門到實(shí)戰(zhàn)!
解鎖LuatOS-log庫:全棧工程師的日志管理實(shí)戰(zhàn)課!
評(píng)論