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

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è)類(lèi)別Trace、Debug、Info、Warning、Error、Fatal和Panic。這里需要注意Fatal和Panic類(lèi)型的日志會(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", // 分割后的文件名稱(chēng)
    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)文章

  • go中值傳遞和指針傳遞的使用

    go中值傳遞和指針傳遞的使用

    在Go語(yǔ)言中,使用&和*可以分別取得變量的地址和值,解引用未初始化或?yàn)閚il的指針會(huì)引發(fā)空指針異常,正確的做法是先進(jìn)行nil檢查,此外,nil在Go中用于多種類(lèi)型的空值表示,值傳遞和指針傳遞各有適用場(chǎng)景,通常小型數(shù)據(jù)結(jié)構(gòu)優(yōu)先考慮值傳遞以減少解引用開(kāi)銷(xiāo)
    2024-10-10
  • Go自定義數(shù)據(jù)序列化的流程詳解

    Go自定義數(shù)據(jù)序列化的流程詳解

    在Go語(yǔ)言中,自定義數(shù)據(jù)的序列化是一個(gè)常見(jiàn)的需求,本文將深入探討 Go 語(yǔ)言中自定義數(shù)據(jù)序列化的流程,包括關(guān)鍵概念、技巧和最佳實(shí)踐,旨在幫助開(kāi)發(fā)者更高效地進(jìn)行數(shù)據(jù)序列化工作,需要的朋友可以參考下
    2024-06-06
  • 深入了解Golang中reflect反射基本原理

    深入了解Golang中reflect反射基本原理

    反射是這樣一種機(jī)制,它是可以讓我們?cè)诔绦蜻\(yùn)行時(shí)(runtime)訪(fǎng)問(wèn)、檢測(cè)和修改對(duì)象本身狀態(tài)或行為的一種能力。本文主要帶大家來(lái)看看Golang中reflect反射基本原理,需要的可以參考一下
    2023-01-01
  • Go語(yǔ)言入門(mén)Go?Web?Fiber框架快速了解

    Go語(yǔ)言入門(mén)Go?Web?Fiber框架快速了解

    這篇文章主要為大家介紹了Go語(yǔ)言入門(mén)Go?Web?Fiber框架的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Go語(yǔ)言實(shí)現(xiàn)的樹(shù)形結(jié)構(gòu)數(shù)據(jù)比較算法實(shí)例

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

    這篇文章主要介紹了Go語(yǔ)言實(shí)現(xiàn)的樹(shù)形結(jié)構(gòu)數(shù)據(jù)比較算法,實(shí)例分析了樹(shù)形結(jié)構(gòu)數(shù)據(jù)比較算法的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 深入分析Golang Server源碼實(shí)現(xiàn)過(guò)程

    深入分析Golang Server源碼實(shí)現(xiàn)過(guò)程

    這篇文章深入介紹了Golang Server源碼實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • 詳解Go語(yǔ)言Sync.Pool為何不加鎖也能夠?qū)崿F(xiàn)線(xiàn)程安全

    詳解Go語(yǔ)言Sync.Pool為何不加鎖也能夠?qū)崿F(xiàn)線(xiàn)程安全

    在這篇文章中,我們將剖析sync.Pool內(nèi)部實(shí)現(xiàn)中,介紹了sync.Pool比較巧妙的內(nèi)部設(shè)計(jì)思路以及其實(shí)現(xiàn)方式。在這個(gè)過(guò)程中,也間接介紹了為何不加鎖也能夠?qū)崿F(xiàn)線(xiàn)程安全,感興趣的可以學(xué)習(xí)一下
    2023-04-04
  • 基于Go Int轉(zhuǎn)string幾種方式性能測(cè)試

    基于Go Int轉(zhuǎn)string幾種方式性能測(cè)試

    這篇文章主要介紹了Go Int轉(zhuǎn)string幾種方式測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 一文詳解go mod依賴(lài)管理詳情

    一文詳解go mod依賴(lài)管理詳情

    這篇文章主要介紹了一文詳解go mod依賴(lài)管理詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Go語(yǔ)言中new與make的使用解讀

    Go語(yǔ)言中new與make的使用解讀

    這篇文章主要介紹了Go語(yǔ)言中new與make的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-07-07

最新評(píng)論

大化| 陇西县| 阿荣旗| 新干县| 绥芬河市| 北宁市| 盐津县| 万盛区| 平陆县| 岑溪市| 望江县| 兴宁市| 宜城市| 塔河县| 弋阳县| 广安市| 鲁甸县| 股票| 凌云县| 卢湾区| 广德县| 温宿县| 新晃| 策勒县| 怀安县| 南和县| 迁安市| 巴彦淖尔市| 茌平县| 商洛市| 两当县| 洛扎县| 镇坪县| 梁平县| 商丘市| 东方市| 四会市| 吉安县| 静海县| 蒙自县| 齐河县|