新聞中心
日志級別
日志級別用于管理日志的輸出,我們可以通過設(shè)定特定的日志級別來關(guān)閉/開啟特定的日志內(nèi)容。 日志級別的設(shè)置可以通過兩個方法實現(xiàn):

創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元積石山保安族東鄉(xiāng)族做網(wǎng)站,已為上家服務(wù),為積石山保安族東鄉(xiāng)族各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
func (l *Logger) SetLevel(level int)
func (l *Logger) SetLevelStr(levelStr string) errorSetLevel方法
通過?SetLevel?方法可以設(shè)置日志級別,?glog?模塊支持以下幾種日志級別常量設(shè)定:
LEVEL_ALL
LEVEL_DEV
LEVEL_PROD
LEVEL_DEBU
LEVEL_INFO
LEVEL_NOTI
LEVEL_WARN
LEVEL_ERRO我們可以通過位操作組合使用這幾種級別,例如其中?LEVEL_ALL?等價于?LEVEL_DEBU? | ?LEVEL_INFO| ?LEVEL_NOTI| ?LEVEL_WARN| ?LEVEL_ERRO| ?LEVEL_CRIT。我們還可以通過?LEVEL_ALL& ^?LEVEL_DEBU& ^?LEVEL_INFO& ^?LEVEL_NOTI來過濾掉?LEVEL_DEBU?/?LEVEL_INFO?/?LEVEL_NOTI?日志內(nèi)容。
當(dāng)然?glog?模塊還有其他的一些級別,如?CRIT?和?FATA?,但是這兩個級別是非常嚴(yán)重的錯誤,無法由開發(fā)者自定義屏蔽,產(chǎn)生嚴(yán)重錯誤的時候。將會產(chǎn)生一些額外的系統(tǒng)動作,如?panic?/?exit?。
使用示例:
package main
import (
"context"
"github.com/GOgf/gf/v2/os/glog"
)
func main() {
ctx := context.TODO()
l := glog.New()
l.Info(ctx, "info1")
l.SetLevel(glog.LEVEL_ALL ^ glog.LEVEL_INFO)
l.Info(ctx, "info2")
}
執(zhí)行后,輸出結(jié)果為:
2021-12-31 11:16:57.272 [INFO] info1SetLevelStr方法
大部分場景下我們可以通過?SetLevelStr?方法來通過字符串設(shè)置日志級別,配置文件中的?level?配置項也是通過字符串來配置日志級別。支持的日志級別字符串如下,不區(qū)分大小寫:
"ALL": LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"DEV": LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"DEVELOP": LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"PROD": LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"PRODUCT": LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"DEBU": LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"DEBUG": LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"INFO": LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"NOTI": LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"NOTICE": LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"WARN": LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"WARNING": LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT,
"ERRO": LEVEL_ERRO | LEVEL_CRIT,
"ERROR": LEVEL_ERRO | LEVEL_CRIT,
"CRIT": LEVEL_CRIT,
"CRITICAL": LEVEL_CRIT,可以看到,通過級別名稱設(shè)置的日志級別是按照日志級別的高低來進(jìn)行過濾的:?DEBU< ?INFO< ?NOTI< ?WARN< ?ERRO< ?CRIT,也支持?ALL?, ?DEV?, ?PROD?常見部署模式配置名稱。
使用示例:
package main
import (
"context"
"github.com/gogf/gf/v2/os/glog"
)
func main() {
ctx := context.TODO()
l := glog.New()
l.Info(ctx, "info1")
l.SetLevelStr("notice")
l.Info(ctx, "info2")
}
執(zhí)行后,輸出結(jié)果為:
2021-12-31 11:20:15.019 [INFO] info1 級別名稱
在日志中我們會看到不同級別的打印內(nèi)容,會在內(nèi)容前面帶有不同的日志級別名稱。默認(rèn)的日志級別名稱如下:
LEVEL_DEBU: "DEBU",
LEVEL_INFO: "INFO",
LEVEL_NOTI: "NOTI",
LEVEL_WARN: "WARN",
LEVEL_ERRO: "ERRO",
LEVEL_CRIT: "CRIT",
LEVEL_PANI: "PANI",
LEVEL_FATA: "FATA",為方便統(tǒng)一日志格式,保證比較優(yōu)雅的排版風(fēng)格,因此日志級別的名稱都使用了級別英文單詞的前四個字符。若有特殊需求需要修改日志級別名稱的,可以通過以下方法進(jìn)行設(shè)置:
func (l *Logger) SetLevelPrefix(level int, prefix string)
func (l *Logger) SetLevelPrefixes(prefixes map[int]string)使用示例:
package main
import (
"context"
"github.com/gogf/gf/v2/os/glog"
)
func main() {
ctx := context.TODO()
l := glog.New()
l.SetLevelPrefix(glog.LEVEL_DEBU, "debug")
l.Debug(ctx, "test")
}
執(zhí)行后,終端輸出:
2021-12-31 11:21:45.754 [debug] test 網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame日志組件-日志級別
URL分享:http://www.dlmjj.cn/article/dhdochi.html


咨詢
建站咨詢
