新聞中心
日志組件是?GOFrame?框架核心的組件之一,當(dāng)然也支持非常方便的配置管理功能。

成都創(chuàng)新互聯(lián)專注于翁源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供翁源營銷型網(wǎng)站建設(shè),翁源網(wǎng)站制作、翁源網(wǎng)頁設(shè)計(jì)、翁源網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造翁源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供翁源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
配置文件(推薦)
日志組件支持配置文件,當(dāng)使用?g.Log?(單例名稱)獲取?Logger?單例對(duì)象時(shí),將會(huì)自動(dòng)通過默認(rèn)的配置管理對(duì)象獲取對(duì)應(yīng)的?Logger?配置。默認(rèn)情況下會(huì)讀取?logger?.單例名稱配置項(xiàng),當(dāng)該配置項(xiàng)不存在時(shí),將會(huì)讀取默認(rèn)的?logger?配置項(xiàng)。配置項(xiàng)請(qǐng)參考配置對(duì)象結(jié)構(gòu)定義:https://pkg.go.dev/github.com/gogf/gf/v2/os/glog#Config
完整配置文件配置項(xiàng)及說明如下,其中配置項(xiàng)名稱不區(qū)分大小寫:
logger:
path: "/var/log/" # 日志文件路徑。默認(rèn)為空,表示關(guān)閉,僅輸出到終端
file: "{Y-m-d}.log" # 日志文件格式。默認(rèn)為"{Y-m-d}.log"
prefix: "" # 日志內(nèi)容輸出前綴。默認(rèn)為空
level: "all" # 日志輸出級(jí)別
ctxKeys: [] # 自定義Context上下文變量名稱,自動(dòng)打印Context的變量到日志中。默認(rèn)為空
header: true # 是否打印日志的頭信息。默認(rèn)true
stdout: true # 日志是否同時(shí)輸出到終端。默認(rèn)true
rotateSize: 0 # 按照日志文件大小對(duì)文件進(jìn)行滾動(dòng)切分。默認(rèn)為0,表示關(guān)閉滾動(dòng)切分特性
rotateExpire: 0 # 按照日志文件時(shí)間間隔對(duì)文件滾動(dòng)切分。默認(rèn)為0,表示關(guān)閉滾動(dòng)切分特性
rotateBackupLimit: 0 # 按照切分的文件數(shù)量清理切分文件,當(dāng)滾動(dòng)切分特性開啟時(shí)有效。默認(rèn)為0,表示不備份,切分則刪除
rotateBackupExpire: 0 # 按照切分的文件有效期清理切分文件,當(dāng)滾動(dòng)切分特性開啟時(shí)有效。默認(rèn)為0,表示不備份,切分則刪除
rotateBackupCompress: 0 # 滾動(dòng)切分文件的壓縮比(0-9)。默認(rèn)為0,表示不壓縮
rotateCheckInterval: "1h" # 滾動(dòng)切分的時(shí)間檢測間隔,一般不需要設(shè)置。默認(rèn)為1小時(shí)
stdoutColorDisabled: false # 關(guān)閉終端的顏色打印。默認(rèn)開啟
writerColorEnable: false # 日志文件是否帶上顏色。默認(rèn)false,表示不帶顏色其中,?level?配置項(xiàng)使用字符串配置,按照日志級(jí)別支持以下配置:?DEBU?< ?INFO< ?NOTI< ?WARN< ?ERRO< ?CRIT,也支持?ALL?, ?DEV?, ?PROD?常見部署模式配置名稱。?level?配置項(xiàng)字符串不區(qū)分大小寫。
示例1,默認(rèn)配置項(xiàng)
logger:
path: "/var/log"
level: "all"
stdout: false隨后可以使用?g.Log()?獲取默認(rèn)的單例對(duì)象時(shí)自動(dòng)獲取并設(shè)置該配置。
示例2,多個(gè)配置項(xiàng)
多個(gè)?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我們可以通過單例對(duì)象名稱獲取對(duì)應(yīng)配置的?Logger?單例對(duì)象:
// 對(duì)應(yīng) logger.logger1 配置項(xiàng)
l1 := g.Log("logger1")
// 對(duì)應(yīng) logger.logger2 配置項(xiàng)
l2 := g.Log("logger2")
// 對(duì)應(yīng)默認(rèn)配置項(xiàng) logger
l3 := g.Log("none")
// 對(duì)應(yīng)默認(rèn)配置項(xiàng) logger
l4 := g.Log()
配置方法(高級(jí))
配置方法用于模塊化使用?glog?時(shí)由開發(fā)者自己進(jìn)行配置管理。
簡要說明:
- 可以通過?
SetConfig?及?SetConfigWithMap?來設(shè)置。 - 也可以使用?
Logger?對(duì)象的?Set*?方法進(jìn)行特定配置的設(shè)置。 - 主要注意的是,配置項(xiàng)在?
Logger?對(duì)象執(zhí)行日志輸出之前設(shè)置,避免并發(fā)安全問題。
我們可以使用?SetConfigWithMap?方法通過?Key-Value?鍵值對(duì)來設(shè)置/修改?Logger?的特定配置,其余的配置使用默認(rèn)配置即可。其中?Key?的名稱即是?Config?這個(gè)?struct?中的屬性名稱,并且不區(qū)分大小寫,單詞間也支持使用?-?/?_?/空格符號(hào)連接。
簡單示例:
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?,其他配置屬性以此類推。
網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame日志組件-配置管理
文章來源:http://m.5511xx.com/article/cogdops.html


咨詢
建站咨詢
