W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
日志組件是?GoFrame
?框架核心的組件之一,當(dāng)然也支持非常方便的配置管理功能。
日志組件支持配置文件,當(dāng)使用?g.Log
?(單例名稱)獲取?Logger
?單例對象時,將會自動通過默認的配置管理對象獲取對應(yīng)的?Logger
?配置。默認情況下會讀取?logger
?.單例名稱配置項,當(dāng)該配置項不存在時,將會讀取默認的?logger
?配置項。配置項請參考配置對象結(jié)構(gòu)定義:https://pkg.go.dev/github.com/gogf/gf/v2/os/glog#Config
完整配置文件配置項及說明如下,其中配置項名稱不區(qū)分大小寫:
logger:
path: "/var/log/" # 日志文件路徑。默認為空,表示關(guān)閉,僅輸出到終端
file: "{Y-m-d}.log" # 日志文件格式。默認為"{Y-m-d}.log"
prefix: "" # 日志內(nèi)容輸出前綴。默認為空
level: "all" # 日志輸出級別
ctxKeys: [] # 自定義Context上下文變量名稱,自動打印Context的變量到日志中。默認為空
header: true # 是否打印日志的頭信息。默認true
stdout: true # 日志是否同時輸出到終端。默認true
rotateSize: 0 # 按照日志文件大小對文件進行滾動切分。默認為0,表示關(guān)閉滾動切分特性
rotateExpire: 0 # 按照日志文件時間間隔對文件滾動切分。默認為0,表示關(guān)閉滾動切分特性
rotateBackupLimit: 0 # 按照切分的文件數(shù)量清理切分文件,當(dāng)滾動切分特性開啟時有效。默認為0,表示不備份,切分則刪除
rotateBackupExpire: 0 # 按照切分的文件有效期清理切分文件,當(dāng)滾動切分特性開啟時有效。默認為0,表示不備份,切分則刪除
rotateBackupCompress: 0 # 滾動切分文件的壓縮比(0-9)。默認為0,表示不壓縮
rotateCheckInterval: "1h" # 滾動切分的時間檢測間隔,一般不需要設(shè)置。默認為1小時
stdoutColorDisabled: false # 關(guān)閉終端的顏色打印。默認開啟
writerColorEnable: false # 日志文件是否帶上顏色。默認false,表示不帶顏色
其中,?level
?配置項使用字符串配置,按照日志級別支持以下配置:?DEBU
?< ?INFO
< ?NOTI
< ?WARN
< ?ERRO
< ?CRIT
,也支持?ALL
?, ?DEV
?, ?PROD
?常見部署模式配置名稱。?level
?配置項字符串不區(qū)分大小寫。
logger:
path: "/var/log"
level: "all"
stdout: false
隨后可以使用?g.Log()
?獲取默認的單例對象時自動獲取并設(shè)置該配置。
多個?Logger
?的配置示例:
logger:
path: "/var/log"
level: "all"
stdout: false
logger1:
path: "/var/log/logger1"
level: "dev"
stdout: false
logger2:
path: "/var/log/logger2"
level: "prod"
stdout: true
我們可以通過單例對象名稱獲取對應(yīng)配置的?Logger
?單例對象:
// 對應(yīng) logger.logger1 配置項
l1 := g.Log("logger1")
// 對應(yīng) logger.logger2 配置項
l2 := g.Log("logger2")
// 對應(yīng)默認配置項 logger
l3 := g.Log("none")
// 對應(yīng)默認配置項 logger
l4 := g.Log()
配置方法用于模塊化使用?glog
?時由開發(fā)者自己進行配置管理。
簡要說明:
SetConfig
?及?SetConfigWithMap
?來設(shè)置。
Logger
?對象的?Set*
?方法進行特定配置的設(shè)置。
Logger
?對象執(zhí)行日志輸出之前設(shè)置,避免并發(fā)安全問題。我們可以使用?SetConfigWithMap
?方法通過?Key-Value
?鍵值對來設(shè)置/修改?Logger
?的特定配置,其余的配置使用默認配置即可。其中?Key
?的名稱即是?Config
?這個?struct
?中的屬性名稱,并且不區(qū)分大小寫,單詞間也支持使用?-
?/?_
?/空格符號連接。
簡單示例:
logger := glog.New()
logger.SetConfigWithMap(g.Map{
"path": "/var/log",
"level": "all",
"stdout": false,
"StStatus": 0,
})
logger.Print("test")
其中?StStatus
?表示是否開啟堆棧打印,設(shè)置為?0
?表示關(guān)閉。鍵名也可以使用?stStatus
?, ?st-status
?, ?st_status
?, ?St Status
?,其他配置屬性以此類推。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: