最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GO語言實現(xiàn)日志切割的示例詳解

 更新時間:2023年07月28日 10:19:46   作者:LeoForBest  
日志記錄對程序排查問題比較關鍵,所以本文將選擇Logrus和lumberjack兩個庫進行日志切割以及記錄調用源,感興趣的小伙伴可以了解一下

準備工作

日志記錄對程序排查問題比較關鍵,記錄下GO中日志選擇,從以下出發(fā)點考慮:

  • 日志文件能自動切割,以免過大
  • 能記錄從哪個文件哪行代碼調用的,方便排查問題
  • 配置簡單明了
  • 庫文件使用人數(shù)較多,穩(wěn)定

經過一段時間摸索,最終選擇了Logrus和lumberjack兩個庫,使用人數(shù)都比較多。

安裝兩個庫

go get gopkg.in/natefinch/lumberjack.v2
go get github.com/sirupsen/logrus

代碼

實際中一行配置就可以完成,后續(xù)只用調用logrus.Debug、logrus.Info同標準庫一樣只用log改為logrus十分簡單明了

    logrus.SetOutput(io.MultiWriter(os.Stdout, &lumberjack.Logger{
        Filename:   "go-log.log",
        MaxBackups: 10,
        MaxSize:    20,
    }))

整體代碼如下,基本能滿足實際使用需求

個別需求調整可以參考這兩個文檔

package main

import (
	"io"
	"os"
	"time"

	"github.com/sirupsen/logrus"
	"gopkg.in/natefinch/lumberjack.v2"
)

func main() {
	// 同時輸出到終端和文件
	logrus.SetOutput(io.MultiWriter(os.Stdout, &lumberjack.Logger{
		Filename:   "go-log.log",
		MaxBackups: 10,
		MaxSize:    20,
	}))
	/*只輸出到文件的話只用以下寫法
	logrus.SetOutput(&lumberjack.Logger{
		Filename:   "go-log.log",
		MaxBackups: 10,
		MaxSize:    20,
	})
	*/

	// 這個在日志中記錄代碼位置,十分有用
	logrus.SetReportCaller(true)
	
	// 設置輸出等級,按實際需求設置,可以忽略
	logrus.SetLevel(logrus.InfoLevel)
	logrus.Debug("debug message")
	logrus.Infof("info message at %s\n", time.Now().Format("2006-01-02 15:04:05"))
	logrus.Error("error message")
}

使用效果

logrus.SetReportCaller(true)可以自動在日志當中記錄代碼調用位置,設置為false時候不開啟

到此這篇關于GO語言實現(xiàn)日志切割的示例詳解的文章就介紹到這了,更多相關GO日志切割內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 關于golang類型推斷和變量重聲明詳解

    關于golang類型推斷和變量重聲明詳解

    在Go語言中,類型推斷可以根據變量的初始化值自動推斷出變量的類型,而不需要顯式地聲明變量類型,變量重聲明可以在同一作用域內重復聲明一個變量,只要其中至少一個是新的變量,本就簡單的給大家介紹一下golang類型推斷和變量重聲明,需要的朋友可以參考下
    2023-08-08
  • Golang?流水線設計模式實踐示例詳解

    Golang?流水線設計模式實踐示例詳解

    這篇文章主要為大家介紹了Golang?流水線設計模式實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • go內存緩存BigCache之Entry封裝源碼閱讀

    go內存緩存BigCache之Entry封裝源碼閱讀

    這篇文章主要介紹了go內存緩存BigCache之Entry封裝源碼閱讀
    2023-09-09
  • 淺析Go語言如何在select語句中實現(xiàn)優(yōu)先級

    淺析Go語言如何在select語句中實現(xiàn)優(yōu)先級

    這篇文章主要為大家詳細介紹了Go語言如何在select語句中實現(xiàn)優(yōu)先級,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Go語言將string解析為time.Time時兩種常見報錯

    Go語言將string解析為time.Time時兩種常見報錯

    本文主要介紹了Go語言將string解析為time.Time時兩種常見報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Go anko實現(xiàn)支持腳本語言

    Go anko實現(xiàn)支持腳本語言

    anko是一個可以讓 Go 項目支持腳本語言的小工具,換句話說,就是可以給 Go 項目加點“腳本魔法”,下面就跟隨小編一起來學習一下他的具體使用吧
    2024-11-11
  • golang實現(xiàn)基于channel的通用連接池詳解

    golang實現(xiàn)基于channel的通用連接池詳解

    這篇文章主要給大家介紹了關于golang實現(xiàn)基于channel的通用連接池的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • Golang 運算符及位運算詳解

    Golang 運算符及位運算詳解

    這篇文章主要介紹了Golang 運算符及位運算詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang channel讀取數(shù)據的幾種情況

    golang channel讀取數(shù)據的幾種情況

    本文主要介紹了golang channel讀取數(shù)據的幾種情況,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • golang判斷文本文件是否是BOM格式的方法詳解

    golang判斷文本文件是否是BOM格式的方法詳解

    在Go語言中,我們可以通過讀取文本文件的前幾個字節(jié)來識別它是否是BOM格式的文件,BOM(Byte Order Mark)是UTF編碼標準中的一部分,用于標示文本文件的編碼順序,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論

泰宁县| 金坛市| 武乡县| 连州市| 汕头市| 乌拉特后旗| 垫江县| 英超| 台南县| 本溪| 博乐市| 大城县| 土默特左旗| 永顺县| 监利县| 永福县| 新竹市| 泗洪县| 安岳县| 桐乡市| 日土县| 密山市| 乡宁县| 兴文县| 奉贤区| 保靖县| 南城县| 南阳市| 太谷县| 徐闻县| 修文县| 浙江省| 天峻县| 大荔县| 海晏县| 菏泽市| 高陵县| 尉氏县| 武夷山市| 呼伦贝尔市| 庆阳市|