溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

go語(yǔ)言碎片整理之標(biāo)準(zhǔn)庫(kù)log

發(fā)布時(shí)間:2020-10-22 12:22:19 來(lái)源:網(wǎng)絡(luò) 閱讀:422 作者:霍帥兵 欄目:編程語(yǔ)言

無(wú)論是軟件開(kāi)發(fā)的調(diào)試階段還是軟件上線之后的運(yùn)行階段,日志一直是很重要的環(huán)節(jié),我們也應(yīng)該養(yǎng)成在程序中記錄日志的好習(xí)慣。

log

Go語(yǔ)言?xún)?nèi)置的log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù)。本文介紹了標(biāo)準(zhǔn)庫(kù)log的基本使用。

使用Logger

log包定義了Logger類(lèi)型,該類(lèi)型提供了一些格式化輸出的方法。本包也提供了一個(gè)預(yù)定義的“標(biāo)準(zhǔn)”logger,可以通過(guò)調(diào)用函數(shù)Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)和Panic系列(Panic|Panicf|Panicln)來(lái)使用,比自行創(chuàng)建一個(gè)logger對(duì)象更容易使用。
例如,我們可以像下面的代碼一樣直接通過(guò)log包調(diào)用上面提到的方法,默認(rèn)它們會(huì)將日志信息打印到終端界面:

package main
import (
    "log"

)
func main(){
    log.Println("這是一條很普通的日志")
    v:="很普通的"
    log.Printf("這是一條%s的日志。\n",v)
    log.Fatalln("這是一條會(huì)觸發(fā)fatal的日志。")
    log.Panicln("這是一條會(huì)觸發(fā)panic的日志")
}

編譯并執(zhí)行上面的代碼會(huì)得到下面的輸出:

2019/06/05 00:17:03 這是一條很普通的日志
2019/06/05 00:17:03 這是一條很普通的的日志。
2019/06/05 00:17:03 這是一條會(huì)觸發(fā)fatal的日志。
exit status 1

logger會(huì)打印每條日志信息的日期、時(shí)間,默認(rèn)輸出到系統(tǒng)的標(biāo)準(zhǔn)錯(cuò)誤。Fatal系列函數(shù)會(huì)在寫(xiě)日志信息后調(diào)用os.Exit(1)。Panic系列函數(shù)會(huì)在寫(xiě)入日志信息后panic.

配置logger

標(biāo)準(zhǔn)logger的配置

默認(rèn)情況下的logger只會(huì)提供日志的時(shí)間信息,但是很多情況下我們希望得到更多的信息,比如記錄該日志的文件名和行號(hào)等。log標(biāo)準(zhǔn)庫(kù)中為我們提供了定制這些設(shè)置的方法。
log標(biāo)準(zhǔn)庫(kù)中的Flags函數(shù)會(huì)返回標(biāo)準(zhǔn)的logger的輸出配置,而SetFlags函數(shù)用來(lái)設(shè)置標(biāo)準(zhǔn)的logger的輸出配置。

func Flags() int
func SetFlags(flag int)
flag選項(xiàng)

log標(biāo)準(zhǔn)庫(kù)提供了如下的flag選項(xiàng),它們是一系列定義好的常量。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI