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

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

 更新時(shí)間:2023年07月28日 10:19:46   作者:LeoForBest  
日志記錄對(duì)程序排查問題比較關(guān)鍵,所以本文將選擇Logrus和lumberjack兩個(gè)庫(kù)進(jìn)行日志切割以及記錄調(diào)用源,感興趣的小伙伴可以了解一下

準(zhǔn)備工作

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

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

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

安裝兩個(gè)庫(kù)

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

代碼

實(shí)際中一行配置就可以完成,后續(xù)只用調(diào)用logrus.Debug、logrus.Info同標(biāo)準(zhǔn)庫(kù)一樣只用log改為logrus十分簡(jiǎn)單明了

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

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

個(gè)別需求調(diào)整可以參考這兩個(gè)文檔

package main

import (
	"io"
	"os"
	"time"

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

func main() {
	// 同時(shí)輸出到終端和文件
	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,
	})
	*/

	// 這個(gè)在日志中記錄代碼位置,十分有用
	logrus.SetReportCaller(true)
	
	// 設(shè)置輸出等級(jí),按實(shí)際需求設(shè)置,可以忽略
	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)可以自動(dòng)在日志當(dāng)中記錄代碼調(diào)用位置,設(shè)置為false時(shí)候不開啟

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

相關(guān)文章

  • golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)(推薦)

    golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)(推薦)

    這篇文章主要介紹了golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-11-11
  • Golang實(shí)現(xiàn)自己的Redis(有序集合跳表)實(shí)例探究

    Golang實(shí)現(xiàn)自己的Redis(有序集合跳表)實(shí)例探究

    這篇文章主要為大家介紹了Golang實(shí)現(xiàn)自己的Redis(有序集合跳表)實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • GoFrame?glist?基礎(chǔ)使用和自定義遍歷

    GoFrame?glist?基礎(chǔ)使用和自定義遍歷

    這篇文章主要為大家介紹了GoFrame?glist的基礎(chǔ)使用和自定義遍歷示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Golang你一定要懂的連接池實(shí)現(xiàn)

    Golang你一定要懂的連接池實(shí)現(xiàn)

    這篇文章主要介紹了Golang你一定要懂的連接池實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Go語(yǔ)言metrics應(yīng)用監(jiān)控指標(biāo)基本使用說(shuō)明

    Go語(yǔ)言metrics應(yīng)用監(jiān)控指標(biāo)基本使用說(shuō)明

    這篇文章主要為大家介紹了Go語(yǔ)言metrics應(yīng)用監(jiān)控指標(biāo)的基本使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • Golang中的http.Server源碼深入分析

    Golang中的http.Server源碼深入分析

    這篇文章主要介紹了Golang中的http.Server源碼,實(shí)現(xiàn)一個(gè)http.Server非常容易,只需要短短幾行代碼,同時(shí)有了協(xié)程的加持,Go實(shí)現(xiàn)的http.Server能夠取得非常優(yōu)秀的性能,下面我們來(lái)分析看看http.Server的源碼
    2023-05-05
  • 詳解Golang中下劃線的使用方法

    詳解Golang中下劃線的使用方法

    這篇文章主要介紹了詳解Golang中下劃線的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例

    go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例

    這篇文章主要為大家介紹了go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Golang使用Gin框架實(shí)現(xiàn)HTTP上傳文件過程介紹

    Golang使用Gin框架實(shí)現(xiàn)HTTP上傳文件過程介紹

    由于需求中有文件上傳這一個(gè)需求,在這里我們就學(xué)習(xí)一下go語(yǔ)言如何上傳文件。本文主要通過表單的方式進(jìn)行文件上傳操作,本文實(shí)例為大家分享了Go實(shí)現(xiàn)文件上傳操作的具體代碼,供大家參考,具體內(nèi)容如下
    2023-04-04
  • Go條件控制語(yǔ)句詳解(if-else、switch和select)

    Go條件控制語(yǔ)句詳解(if-else、switch和select)

    條件語(yǔ)句用于檢查一個(gè)條件是否為真,并根據(jù)條件的真假來(lái)決定是否執(zhí)行相應(yīng)的代碼,下面這篇文章主要給大家介紹了關(guān)于Go條件控制語(yǔ)句(if-else、switch和select)的相關(guān)資料,需要的朋友可以參考下
    2024-03-03

最新評(píng)論