2 Star 1 Fork 0

依依四零七 / 微信令牌中控

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
logger.go 2.70 KB
一键复制 编辑 原始数据 按行查看 历史
壹壹肆零柒 提交于 2020-08-26 09:46 . 项目初始化
package driver
import (
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
"log"
"os"
)
type LoggerOptions struct {
LogName string `yaml:"log_name"`
}
var loggerHandler *logrus.Logger
var loggerOptions *LoggerOptions
func LoggerInit(config *LoggerOptions) {
loggerOptions = config
_ = LoggerInstance()
}
func LoggerInstance() *logrus.Logger {
if loggerHandler != nil {
return loggerHandler
}
if loggerOptions == nil {
log.Fatal("日志配置不正确")
}
loggerHandler = logrus.New()
// 设置日志级别为xx以及以上
loggerHandler.SetLevel(logrus.InfoLevel)
//loggerHandler.SetReportCaller(true) // 显示行号等信息
//JSON在生产中通常只在使用Splunk或Logstash等工具进行日志聚合时才有用。
// 设置日志格式为json格式
loggerHandler.SetFormatter(&logrus.TextFormatter{
// PrettyPrint: true,//格式化json
TimestampFormat: "2006-01-02 15:04:05", //时间格式化
})
// 设置将日志输出到标准输出(默认的输出为stderr,标准错误)
// 日志消息输出可以是任意的io.writer类型
loggerHandler.SetOutput(os.Stdout)
//这是我在window上的测试代码,文件名自己修改
writer, err := rotatelogs.New(
//这是分割代码的命名规则,要和下面WithRotationTime时间精度一致。要是分钟都是分钟
loggerOptions.LogName,
// WithLinkName为最新的日志建立软连接,以方便随着找到当前日志文件。windows报错没权限
// rotatelogs.WithLinkName(logName),
//文件切割之间的间隔。默认情况下,日志每86400秒/一天旋转一次。注意:记住要利用时间。持续时间值。
// rotatelogs.WithRotationTime(time.Second*3),
// WithMaxAge和WithRotationCount二者只能设置一个,
// WithMaxAge设置文件清理前的最长保存时间,
// WithRotationCount设置文件清理前最多保存的个数。 默认情况下,此选项是禁用的。
// rotatelogs.WithMaxAge(time.Second*30),//默认每7天清除下日志文件
rotatelogs.WithMaxAge(-1), //需要手动禁用禁用 默认情况下不清除日志,
rotatelogs.WithRotationCount(2), //清除除最新2个文件之外的日志,默认禁用
)
if err != nil {
log.Fatal("config local file system for logger error: %v", err)
}
lfsHook := lfshook.NewHook(lfshook.WriterMap{
logrus.DebugLevel: writer,
logrus.InfoLevel: writer,
logrus.WarnLevel: writer,
logrus.ErrorLevel: writer,
logrus.FatalLevel: writer,
logrus.PanicLevel: writer,
}, &logrus.TextFormatter{
// PrettyPrint: true,//格式化json
TimestampFormat: "2006-01-02 15:04:05", //时间格式化
})
loggerHandler.AddHook(lfsHook)
return loggerHandler
}
Go
1
https://gitee.com/dh114007/wechat_token.git
git@gitee.com:dh114007/wechat_token.git
dh114007
wechat_token
微信令牌中控
ecb1187e7599

搜索帮助