使用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 是一個可插拔的、結(jié)構(gòu)化的日志框架辞槐。
1.日志級別:logrus 擁有六種日志級別:debug践付、info、warn频鉴、error栓辜、fatal 和 panic。
2.Hook 機制:允許使用者通過 hook 的方式將日志分發(fā)到任意地方垛孔。
3.日志格式:可以定制日志輸出格式藕甩,另外logrus 集成了JSONFormatter 和 TextFormatter兩種日志格式
4.Field 機制:logrus 鼓勵通過 Field 機制進行精細化的、結(jié)構(gòu)化的日志記錄,而不是通過冗長的消息來記錄日志周荐。
如果有更好的文章請給我留言吧~