Golang如何自定义logrus日志保存为日志文件
作者:比嗨皮兔
这篇文章主要给大家介绍了关于Golang如何自定义logrus日志保存为日志文件的相关资料,logrus是目前Github上star数量最多的日志库,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方式,将日志分发到任意地方,如本地文件系统、标准输出、logstash、elasticsearch或者mq等,或者通过hook定义日志内容和格式等。
- 可选的日志输出格式。logrus内置了两种日志格式,JSONFormatter和TextFormatter。如果这两个格式不满足需求,可以自己动手实现接口Formatter,来定义自己的日志格式。
- Field机制。logrus鼓励通过Field机制进行精细化、结构化的日志记录,而不是通过冗长的消息来记录日志。
- logrus是一个可插拔的、结构化的日志框架。
总结
到此这篇关于Golang如何自定义logrus日志保存为日志文件的文章就介绍到这了,更多相关Golang自定义logrus日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
