golang使用日志分割

使用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 机制进行精细化的、结构化的日志记录,而不是通过冗长的消息来记录日志。

如果有更好的文章请给我留言吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。