【Golang】自定义logrus日志保存为日志文件

背景

为了方便查看日志,项目中需要把日志保存到对应的日志文件中,所以需要当前的配置,以使得日志能够保存到对应的日志文件中。

代码


import (
	"github.com/orandin/lumberjackrus"
	"github.com/sirupsen/logrus"
)

func init() {
	logrus.AddHook(NewRotateHook())
}

func NewRotateHook() logrus.Hook {
	hook, _ := lumberjackrus.NewHook(
		&lumberjackrus.LogFile{
			// 通用日志配置
			Filename:   "output.log",
			MaxSize:    100,
			MaxBackups: 1,
			MaxAge:     1,
			Compress:   false,
			LocalTime:  false,
		},
		logrus.InfoLevel,
		&logrus.TextFormatter{DisableColors: true},
		&lumberjackrus.LogFileOpts{
			// 针对不同日志级别的配置
			logrus.TraceLevel: &lumberjackrus.LogFile{
				Filename: "trace.log",
				MaxSize:    100,
				MaxBackups: 1,
				MaxAge:     1,
				Compress:   false,
				LocalTime:  false,
			},
			logrus.DebugLevel: &lumberjackrus.LogFile{
				Filename: "debug.log",
				MaxSize:    100,
				MaxBackups: 1,
				MaxAge:     1,
				Compress:   false,
				LocalTime:  false,
			},
			logrus.InfoLevel: &lumberjackrus.LogFile{
				Filename: "info.log",
				MaxSize:    100,
				MaxBackups: 1,
				MaxAge:     1,
				Compress:   false,
				LocalTime:  false,
			},
			logrus.ErrorLevel: &lumberjackrus.LogFile{
				Filename:   "error.log",
				MaxSize:    10,   
				MaxBackups: 10,    
				MaxAge:     10,    
				Compress:   false,  
				LocalTime:  false, 
			},
			logrus.FatalLevel: &lumberjackrus.LogFile{
				Filename:   "fatal.log",
				MaxSize:    10,   
				MaxBackups: 10,    
				MaxAge:     10,    
				Compress:   false, 
				LocalTime:  false, 
			},
		},
	)
	return hook
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 13:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 13:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 13:40:02       87 阅读
  4. Python语言-面向对象

    2024-02-05 13:40:02       96 阅读

热门阅读

  1. Python判断当前运行环境是否是jupyter notebook

    2024-02-05 13:40:02       47 阅读
  2. Linux 常用命令

    2024-02-05 13:40:02       54 阅读
  3. golang 创建unix socket http服务端

    2024-02-05 13:40:02       49 阅读
  4. Pandas 条件 关键字过滤

    2024-02-05 13:40:02       44 阅读
  5. SplashScreen使用

    2024-02-05 13:40:02       51 阅读
  6. 观察者模式(Observer)

    2024-02-05 13:40:02       50 阅读
  7. 过年手机推荐

    2024-02-05 13:40:02       46 阅读
  8. 前端学习之路(2) Vue3响应式模式设计原理

    2024-02-05 13:40:02       35 阅读
  9. Redis:bigkeys内存分析

    2024-02-05 13:40:02       51 阅读
  10. php 函数三

    2024-02-05 13:40:02       41 阅读
  11. 两次NAT

    两次NAT

    2024-02-05 13:40:02      50 阅读
  12. 3.7 GNU ARM汇编语言

    2024-02-05 13:40:02       51 阅读
  13. 华为配置车地通信快速切换实验

    2024-02-05 13:40:02       42 阅读
  14. 系统分析师-23年-上午答案

    2024-02-05 13:40:02       44 阅读
  15. 【使用 Python 进行 NLP】 第 2 部分 NLTK

    2024-02-05 13:40:02       50 阅读