Golang如何自定義logrus日志保存為日志文件
更新時間:2024年02月18日 09:36:07 作者:比嗨皮兔
這篇文章主要給大家介紹了關于Golang如何自定義logrus日志保存為日志文件的相關資料,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機制進行精細化、結構化的日志記錄,而不是通過冗長的消息來記錄日志。
- logrus是一個可插拔的、結構化的日志框架。
總結
到此這篇關于Golang如何自定義logrus日志保存為日志文件的文章就介紹到這了,更多相關Golang自定義logrus日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Go語言如何實現(xiàn)將[][]byte轉為io.Reader
本文主要介紹了如何在Go語言中實現(xiàn)將[][]byte轉換為io.Reader,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2025-02-02