需求:将日志文件统一输出到D:/bian/logs/dspcollect.log文件中,go程序重启后日志累加写入文件,每24小时分割一次日志,保存30天内的日志文件。
对比了几款go 日志框架:zap , logrus ,seelog等。其中logrus
是目前Github上star数量最多的日志库,能强大,性能高效,而且具有高度灵活性,提供了自定义插件的功能。zap是Uber推出的一个快速、结构化的分级日志库.具有强大的ad-hoc分析功能,并且具有灵活的仪表盘。seelog提供了灵活的异步调度、格式化和过滤功能。
关于logrus的使用可以参考这篇博客:https://mojotv.cn/2018/12/27/golang-logrus-tutorial
本文主要使用zap,涉及到的go包如下:
github.com/lestrrat/go-file-rotatelogs //由于zap,logrus都不支持日志分割,所有依赖rotate进行日志分割
go.uber.org/zap
package main
import (
"github.com/lestrrat/go-file-rotatelogs"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"io"
"time"
)
var Logger *zap.SugaredLogger
func main() {
Logger.Error