Golang如何自定義logrus日志保存為日志文件
更新時間:2024年02月18日 09:36:07 作者:比嗨皮兔
這篇文章主要給大家介紹了關(guān)于Golang如何自定義logrus日志保存為日志文件的相關(guān)資料,logrus是目前Github上star數(shù)量最多的日志庫,logrus功能強大,性能高效,而且具有高度靈活性,提供了自定義插件的功能,很多開源項目都是用了logrus來記錄其日志,需要的朋友可以參考下
背景
為了方便查看日志,項目中需要把日志保存到對應的日志文件中,所以需要當前的配置,以使得日志能夠保存到對應的日志文件中。
代碼
import (
"github.com/orandin/lumberjackrus"
"github.com/sirupsen/logrus"
)
func init() {
logrus.AddHook(NewRotateHook())
}
func NewRotateHook() logrus.Hook {
hook, _ := lumberjackrus.NewHook(
&lumberjackrus.LogFile{
// 通用日志配置
Filename: "output.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
logrus.InfoLevel,
&logrus.TextFormatter{DisableColors: true},
&lumberjackrus.LogFileOpts{
// 針對不同日志級別的配置
logrus.TraceLevel: &lumberjackrus.LogFile{
Filename: "trace.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
logrus.DebugLevel: &lumberjackrus.LogFile{
Filename: "debug.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
logrus.InfoLevel: &lumberjackrus.LogFile{
Filename: "info.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
logrus.ErrorLevel: &lumberjackrus.LogFile{
Filename: "error.log",
MaxSize: 10,
MaxBackups: 10,
MaxAge: 10,
Compress: false,
LocalTime: false,
},
logrus.FatalLevel: &lumberjackrus.LogFile{
Filename: "fatal.log",
MaxSize: 10,
MaxBackups: 10,
MaxAge: 10,
Compress: false,
LocalTime: false,
},
},
)
return hook
}附:logrus特性
logrus具有以下特性:
- 完全兼容golang標準庫日志模塊。logrus擁有六種日志級別:debug、info、warn、error、fatal和panic,這是golang標準庫日志模塊的API的超集。如果你的項目使用標準庫日志模塊,完全可以用最低的代價遷移到logrus上。
- 可擴展的Hook機制。允許使用者通過hook方式,將日志分發(fā)到任意地方,如本地文件系統(tǒng)、標準輸出、logstash、elasticsearch或者mq等,或者通過hook定義日志內(nèi)容和格式等。
- 可選的日志輸出格式。logrus內(nèi)置了兩種日志格式,JSONFormatter和TextFormatter。如果這兩個格式不滿足需求,可以自己動手實現(xiàn)接口Formatter,來定義自己的日志格式。
- Field機制。logrus鼓勵通過Field機制進行精細化、結(jié)構(gòu)化的日志記錄,而不是通過冗長的消息來記錄日志。
- logrus是一個可插拔的、結(jié)構(gòu)化的日志框架。
總結(jié)
到此這篇關(guān)于Golang如何自定義logrus日志保存為日志文件的文章就介紹到這了,更多相關(guān)Golang自定義logrus日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語言如何實現(xiàn)將[][]byte轉(zhuǎn)為io.Reader
本文主要介紹了如何在Go語言中實現(xiàn)將[][]byte轉(zhuǎn)換為io.Reader,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2025-02-02

