golang logrus

golang logrus

示例1: 输出json日志、日志按小时切割

package main

import (
	"io"
	"os"
	"time"

	rotatelogs "github.com/lestrrat-go/file-rotatelogs"
	log "github.com/sirupsen/logrus"
)

var (
	Log *log.Logger
)

func InitLog(path string) {
	// LOG
	Log = log.New()
	/* 日志轮转相关函数
	`WithLinkName` 为最新的日志建立软连接
	`WithRotationTime` 设置日志分割的时间,隔多久分割一次
	WithMaxAge 和 WithRotationCount二者只能设置一个
	 `WithMaxAge` 设置文件清理前的最长保存时间
	 `WithRotationCount` 设置文件清理前最多保存的个数
	*/
	// 下面配置日志每隔 1 分钟轮转一个新文件,保留最近 3 分钟的日志文件,多余的自动清理掉。
	writer, _ := rotatelogs.New(
		path+".%Y%m%d%H",
		rotatelogs.WithLinkName(path),
		rotatelogs.WithMaxAge(time.Duration(720)*time.Hour),
		rotatelogs.WithRotationTime(time.Duration(24)*time.Hour),
	)
	Log.SetFormatter(&log.JSONFormatter{})
	// Log.SetOutput(writer)
	Log.SetOutput(io.MultiWriter(os.Stdout, writer))
}

示例2: 增加json数据的key

1. withfields

	utils.Log.WithFields(logrus.Fields{
		"name": "username",
		"age": "age",
	}).Infof("aaa")

2. withfield

	utils.Log.WithField("name","username").WithField("age","age").Infof("aaa")
posted @ 2021-06-23 14:02  董大轩  阅读(278)  评论(0编辑  收藏  举报