欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang如何自定義logrus日志保存為日志文件

 更新時間:2024年02月18日 09:36:07   作者:比嗨皮兔  
這篇文章主要給大家介紹了關于Golang如何自定義logrus日志保存為日志文件的相關資料,logrus是目前Github上star數(shù)量最多的日志庫,logrus功能強大,性能高效,而且具有高度靈活性,提供了自定義插件的功能,很多開源項目都是用了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
}

附:logrus特性

logrus具有以下特性:

  • 完全兼容golang標準庫日志模塊。logrus擁有六種日志級別:debug、info、warn、error、fatal和panic,這是golang標準庫日志模塊的API的超集。如果你的項目使用標準庫日志模塊,完全可以用最低的代價遷移到logrus上。
  • 可擴展的Hook機制。允許使用者通過hook方式,將日志分發(fā)到任意地方,如本地文件系統(tǒng)、標準輸出、logstash、elasticsearch或者mq等,或者通過hook定義日志內(nèi)容和格式等。
  • 可選的日志輸出格式。logrus內(nèi)置了兩種日志格式,JSONFormatter和TextFormatter。如果這兩個格式不滿足需求,可以自己動手實現(xiàn)接口Formatter,來定義自己的日志格式。
  • Field機制。logrus鼓勵通過Field機制進行精細化、結構化的日志記錄,而不是通過冗長的消息來記錄日志。
  • logrus是一個可插拔的、結構化的日志框架。

總結 

到此這篇關于Golang如何自定義logrus日志保存為日志文件的文章就介紹到這了,更多相關Golang自定義logrus日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go 自動升級依賴版本的幾種方法實現(xiàn)

    Go 自動升級依賴版本的幾種方法實現(xiàn)

    Go語言使用GoModules進行依賴管理,可以通過多種方式自動升級依賴,本文就來介紹Go 自動升級依賴版本的7種方法,感興趣的可以了解一下
    2025-03-03
  • Golang學習之map的用法詳解

    Golang學習之map的用法詳解

    在Golang(又稱Go語言)中,map是一種非常有用的數(shù)據(jù)結構,所以這篇文章小編就來帶大家一起深入了解一下map的用法,感興趣的小伙伴可以了解一下
    2023-06-06
  • 一文帶你掌握Golang中的值類型和引用類型

    一文帶你掌握Golang中的值類型和引用類型

    在?Golang?中,數(shù)據(jù)類型可以分為兩大類:值類型(Value?Types)和引用類型(Reference?Types),理解這兩種類型的區(qū)別對于理解?Golang?中的數(shù)據(jù)傳遞和內(nèi)存管理是很重要的,下面就跟隨小編一起深入了解一下它們吧
    2024-01-01
  • go語言中decimal的用法詳解

    go語言中decimal的用法詳解

    本文主要介紹了go語言中decimal的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 一文帶你吃透Golang中net/http標準庫服務端

    一文帶你吃透Golang中net/http標準庫服務端

    這篇文章將從服務端(Server)作為切入點和大家分享一下Go語言net/http標準庫的實現(xiàn)邏輯,進而一步步分析http標準庫內(nèi)部是如何運作的,感興趣的可以了解下
    2024-03-03
  • Go每日一庫之dateparse處理時間

    Go每日一庫之dateparse處理時間

    不管什么時候,處理時間總是讓人頭疼的一件事情。今天要介紹的dateparse實現(xiàn)解析日期時間格式的字符串。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Go語言如何實現(xiàn)將[][]byte轉為io.Reader

    Go語言如何實現(xiàn)將[][]byte轉為io.Reader

    本文主要介紹了如何在Go語言中實現(xiàn)將[][]byte轉換為io.Reader,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2025-02-02
  • 詳解Go?中的時間處理

    詳解Go?中的時間處理

    這篇文章主要介紹了Go?中的時間處理,本文將介紹?time?庫中一些重要的函數(shù)和方法,希望能幫助到那些一遇到?Go?時間處理問題就需要百度的童鞋,需要的朋友可以參考下
    2022-07-07
  • Go并發(fā)編程sync.Cond的具體使用

    Go并發(fā)編程sync.Cond的具體使用

    Go 標準庫提供 Cond 原語的目的是,為等待 / 通知場景下的并發(fā)問題提供支持,本文主要介紹了Go并發(fā)編程sync.Cond的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • 利用go語言實現(xiàn)查找二叉樹中的最大寬度

    利用go語言實現(xiàn)查找二叉樹中的最大寬度

    這篇文章主要介紹了利用go語言實現(xiàn)查找二叉樹中的最大寬度,文章圍繞主題展開詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05

最新評論