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

go日志庫(kù)中的logrus

 更新時(shí)間:2022年08月22日 14:45:18   作者:zzxiaoma  
這篇文章主要介紹了go日志庫(kù)中的logrus主要包括go日志庫(kù)logrus的安裝和使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

一、安裝

go get github.com/sirupsen/logrus

二、使用

1、當(dāng)做標(biāo)準(zhǔn)庫(kù)使用

logrus實(shí)現(xiàn)了標(biāo)準(zhǔn)庫(kù)log的方法,可以用標(biāo)準(zhǔn)庫(kù)的方法用于logrus,例如

import (
  log "github.com/sirupsen/logrus"
)
log.Println("標(biāo)準(zhǔn)log")

2、使用帶級(jí)別日志

import (
  log "github.com/sirupsen/logrus"
)

func main() {
  log.Info("info")
}

具體有七個(gè)類別Trace、Debug、Info、Warning、Error、Fatal和Panic。這里需要注意Fatal和Panic類型的日志會(huì)中斷程序的運(yùn)行。

3、輸出日志時(shí)可以附帶參數(shù)

log.WithFields(log.Fields{
  "flag":    true,
  "name": "zhangsan",
  }).Fatal("fatal")

在運(yùn)行中出現(xiàn)錯(cuò)誤時(shí),把當(dāng)時(shí)的參數(shù)記錄下來(lái)更容易分析,而不是把各個(gè)參數(shù)組織成句子拼接起來(lái)。

4、日志輸出的格式

log.SetFormatter(&log.JSONFormatter{})
log.SetFormatter(&log.TextFormatter{
  ForceColors:   true,
  FullTimestamp: true,
  })
log.SetOutput(os.Stdout)
log.SetLevel(log.WarnLevel)

可以輸出JSON,文本格式,對(duì)具體的格式還可以設(shè)置顏色、時(shí)間串等信息,可以設(shè)置輸出位置,輸出日志的級(jí)別。

5、輸出到多個(gè)位置

如果同一份日志內(nèi)容想存儲(chǔ)到不同位置,可以創(chuàng)建不同的log實(shí)例,對(duì)每個(gè)實(shí)例進(jìn)行不同設(shè)置

var log = logrus.New()

6、輸出日志到文件

file, err := os.OpenFile("logs/cus.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err == nil {
    log.Out = file
} else {
    log.Info("Failed to log to file, using default stderr")
}

7、分割日志文件

如果每天的日志都放到一個(gè)文件中,會(huì)越來(lái)越大,按照時(shí)間進(jìn)行分割會(huì)比較好。下面的內(nèi)容放到初始化的時(shí)候執(zhí)行。

這里面需要引入第三方庫(kù)

"github.com/lestrrat-go/file-rotatelogs"

"github.com/rifflock/lfshook"

writer, err := rotatelogs.New(
    "文件名"+".%Y%m%d%H%M", // 分割后的文件名稱
    rotatelogs.WithLinkName("文件名"),      // 生成軟鏈,指向最新日志文件
    rotatelogs.WithMaxAge(time.Hour*24*365),             // 設(shè)置最大保存時(shí)間
    rotatelogs.WithRotationTime(time.Hour*24), // 設(shè)置日志切割時(shí)間間隔
)

if err != nil {
    log.Errorf("config local file system logger error", err)
}

lfHook := lfshook.NewHook(lfshook.WriterMap{
    logrus.DebugLevel: writer, // 為不同級(jí)別設(shè)置不同的輸出目的
    logrus.InfoLevel:  writer,
    logrus.WarnLevel:  writer,
    logrus.ErrorLevel: writer,
    logrus.FatalLevel: writer,
    logrus.PanicLevel: writer,
}, &logrus.TextFormatter{DisableColors: true})
//最后加入hook
log.AddHook(lfHook)

到此這篇關(guān)于go日志庫(kù)中的logrus的文章就介紹到這了,更多相關(guān)go日志庫(kù)logrus內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入Golang的接口interface

    深入Golang的接口interface

    這篇文章主要介紹了深入Golang的接口interface,go不要求類型顯示地聲明實(shí)現(xiàn)了哪個(gè)接口,只要實(shí)現(xiàn)了相關(guān)的方法即可,編譯器就能檢測(cè)到,接下來(lái)關(guān)于接口interface的相關(guān)介紹需要的朋友可以參考下面文章內(nèi)容
    2022-06-06
  • golang中的net/rpc包使用概述(小結(jié))

    golang中的net/rpc包使用概述(小結(jié))

    本篇文章主要介紹了golang中的net/rpc包使用概述(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • VsCode搭建Go語(yǔ)言開發(fā)環(huán)境的配置教程

    VsCode搭建Go語(yǔ)言開發(fā)環(huán)境的配置教程

    這篇文章主要介紹了在VsCode中搭建Go開發(fā)環(huán)境的配置教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Go語(yǔ)言實(shí)現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實(shí)例

    Go語(yǔ)言實(shí)現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實(shí)例

    這篇文章主要介紹了Go語(yǔ)言實(shí)現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法,實(shí)例分析了樹形結(jié)構(gòu)數(shù)據(jù)比較算法的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語(yǔ)言使用sqlx操作數(shù)據(jù)庫(kù)的示例詳解

    Go語(yǔ)言使用sqlx操作數(shù)據(jù)庫(kù)的示例詳解

    sqlx?是?Go?語(yǔ)言中一個(gè)流行的第三方包,它提供了對(duì)?Go?標(biāo)準(zhǔn)庫(kù)?database/sql?的擴(kuò)展,本文重點(diǎn)講解?sqlx?在?database/sql?基礎(chǔ)上擴(kuò)展的功能,希望對(duì)大家有所幫助
    2023-06-06
  • golang內(nèi)存對(duì)齊的概念及案例詳解

    golang內(nèi)存對(duì)齊的概念及案例詳解

    為保證程序順利高效的運(yùn)行,編譯器會(huì)把各種類型的數(shù)據(jù)安排到合適的地址,并占用合適的長(zhǎng)度,這就是內(nèi)存對(duì)齊。本文重點(diǎn)給大家介紹golang內(nèi)存對(duì)齊的概念及案例詳解,感興趣的朋友一起看看吧
    2022-02-02
  • 詳解Go語(yǔ)言中關(guān)于包導(dǎo)入必學(xué)的 8 個(gè)知識(shí)點(diǎn)

    詳解Go語(yǔ)言中關(guān)于包導(dǎo)入必學(xué)的 8 個(gè)知識(shí)點(diǎn)

    這篇文章主要介紹了詳解Go語(yǔ)言中關(guān)于包導(dǎo)入必學(xué)的 8 個(gè)知識(shí)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • golang生成指定位數(shù)的隨機(jī)數(shù)的方法

    golang生成指定位數(shù)的隨機(jī)數(shù)的方法

    這篇文章主要介紹了golang生成指定位數(shù)的隨機(jī)數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Go如何實(shí)現(xiàn)HTTP請(qǐng)求限流示例

    Go如何實(shí)現(xiàn)HTTP請(qǐng)求限流示例

    本篇文章主要介紹了Go如何實(shí)現(xiàn)HTTP請(qǐng)求限流示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 試了下Golang實(shí)現(xiàn)try catch的方法

    試了下Golang實(shí)現(xiàn)try catch的方法

    雖然在使用Golang的時(shí)候發(fā)現(xiàn)沒有try catch這種錯(cuò)誤處理機(jī)制但是想一想golang作為一門優(yōu)雅的語(yǔ)言,似乎也是情理之中。那么夠怎么捕獲異常呢,本文就來(lái)介紹一下
    2021-07-07

最新評(píng)論