使用go-file-rotatelogs日志分割库
1.引入包
impor "github.com/lestrrat/go-file-rotatelogs"
2.分割代码
func installLogFile(app freedom.Application) {
options := conf.Get().Options
logfile := options.LogPath + "/" + options.LogName
writer, _ := rotatelogs.New(
logfile+".%Y%m%d%H%M",
rotatelogs.WithLinkName(logfile),
rotatelogs.WithMaxAge(time.Duration(options.LogMaxAge)*24*time.Hour),
rotatelogs.WithRotationTime(time.Duration(options.LogRorateTime)*time.Hour),
)
//app.Logger().SetOutput(writer)
app.Logger().AddOutput(writer)
}
需要注意logpath最好是绝对路径,否则生成的日志软链无法使用。
推荐使用logrus来记录日志,logrus 是一个可插拔的、结构化的日志框架。
1.日志级别:logrus 拥有六种日志级别:debug、info、warn、error、fatal 和 panic。
2.Hook 机制:允许使用者通过 hook 的方式将日志分发到任意地方。
3.日志格式:可以定制日志输出格式,另外logrus 集成了JSONFormatter 和 TextFormatter两种日志格式
4.Field 机制:logrus 鼓励通过 Field 机制进行精细化的、结构化的日志记录,而不是通过冗长的消息来记录日志。
如果有更好的文章请给我留言吧~