go客户之日志

Posted zzxiaoma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go客户之日志相关的知识,希望对你有一定的参考价值。

日志采用第三方库github.com/sirupsen/logrus

package logger

import (
"path"
"time"
"github.com/lestrrat-go/file-rotatelogs"
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
)

var Log = logrus.New()
func init()
ConfigLocalFileSystemLogger("logs/", "cus", time.Hour*24*365, time.Hour*24*30)

func ConfigLocalFileSystemLogger(logPath string, logFileName string, maxAge time.Duration, rotationTime time.Duration)
baseLogPaht := path.Join(logPath, logFileName)
writer, err := rotatelogs.New(
baseLogPaht+".%Y%m%d%H%M",
rotatelogs.WithLinkName(baseLogPaht),
rotatelogs.WithMaxAge(maxAge),
rotatelogs.WithRotationTime(rotationTime),
)
if err != nil
Log.Errorf("config local file system logger error", err)

Log.SetLevel(logrus.DebugLevel)
lfHook := lfshook.NewHook(lfshook.WriterMap
logrus.DebugLevel: writer, // 为不同级别设置不同的输出目的
logrus.InfoLevel: writer,
logrus.WarnLevel: writer,
logrus.ErrorLevel: writer,
logrus.FatalLevel: writer,
logrus.PanicLevel: writer,
, &logrus.TextFormatterDisableColors: true)
Log.AddHook(lfHook)

ConfigLocalFileSystemLogger("logs/", "cus", time.Hour*24*365, time.Hour*24*30)方法用于对日志进行设置,第一个参数是存放路径,第二个是文件名,第三个是存放最长时间,第四个参数是文件多长时间生成一个。这样就可以30天生成一个文件,1年以前的文件自动删除。文件名为cus开头后面是时间字符串。

使用方法:logger是包,Log是上面文件定义的对象,var Log = logrus.New(),使用Error方法存储错误。

logger.Log.Error(err)

具体logrus的详细用法可以查看我的另一篇文章。

以上是关于go客户之日志的主要内容,如果未能解决你的问题,请参考以下文章

手撸golang GO与微服务 ChatServer之2

Go语言系列之自定义实现日志库

Java&Go高性能队列之Disruptor性能测试#yyds干货盘点#

Go语言系列之日志库zap

Go语言系列之日志库zap

chainmaker-go-sdk 查看客户端日志