golang使用日志分割

g_Dotaer · · 1694 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:g_Dotaer

查看原文:golang使用日志分割

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1694 次点击  
加入收藏 微博
上一篇:Envoy VS Treafik
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传