当前位置: 首页 > article >正文

【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
}


http://www.kler.cn/a/228099.html

相关文章:

  • 认识小程序的基本组成结构
  • 机器人抓取与操作经典规划算法(深蓝)——2
  • 使用 Redis 实现分布式锁的基本思路
  • K8S 快速实战
  • 5分钟带你获取deepseek api并搭建简易问答应用
  • 25美赛ABCDEF题详细建模过程+可视化图表+参考论文+写作模版+数据预处理
  • 04-Java建造者模式 ( Builder Pattern )
  • QT6调用音频输入输出(超详细)
  • Day59 单调栈part02 503. 下一个更大元素 II 42. 接雨水
  • 基于tomcat的https(ssl)双向认证
  • 【Linux系统 01】Vim工具
  • 【2024年5月备考新增】《软考高项论文专题 (8)采购管理(合集)》
  • 机器学习本科课程 实验3 决策树处理分类任务
  • rust ethers-rs 签名与solidity验证签名例子
  • (深度学习快速入门)Graph Contrastive Learning with Augmentations(GraphCL)笔记
  • 租用海外服务器丢包是什么情况?
  • 3031. Minimum Time to Revert Word to Initial State II
  • 【Linux】 信号的保存 | 捕捉
  • list基本使用
  • 基于深度学习的SSVEP分类算法简介
  • 【Android】RxJava系列01-基本概述和基本用法
  • 【CSS + ElementUI】更改 el-carousel 指示器样式且隐藏左右箭头
  • Centos 7.5 安装 NVM 详细步骤
  • 基于ESP8266 开发板(MCU)遥控小车
  • PHP三级分类数据处理
  • eslint报错文档大量红色报错符号 不自动修正