無論是軟件開發(fā)的調(diào)試階段還是軟件上線之后的運(yùn)行階段,日志一直是很重要的環(huán)節(jié),我們也應(yīng)該養(yǎng)成在程序中記錄日志的好習(xí)慣。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了慶城免費(fèi)建站歡迎大家使用!Go語言內(nèi)置的log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù)。本文介紹了標(biāo)準(zhǔn)庫log的基本使用。
log包定義了Logger類型,該類型提供了一些格式化輸出的方法。本包也提供了一個(gè)預(yù)定義的“標(biāo)準(zhǔn)”logger,可以通過調(diào)用函數(shù)Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)和Panic系列(Panic|Panicf|Panicln)來使用,比自行創(chuàng)建一個(gè)logger對(duì)象更容易使用。
例如,我們可以像下面的代碼一樣直接通過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ì)在寫日志信息后調(diào)用os.Exit(1)。Panic系列函數(shù)會(huì)在寫入日志信息后panic.
默認(rèn)情況下的logger只會(huì)提供日志的時(shí)間信息,但是很多情況下我們希望得到更多的信息,比如記錄該日志的文件名和行號(hào)等。log標(biāo)準(zhǔn)庫中為我們提供了定制這些設(shè)置的方法。
log標(biāo)準(zhǔn)庫中的Flags函數(shù)會(huì)返回標(biāo)準(zhǔn)的logger的輸出配置,而SetFlags函數(shù)用來設(shè)置標(biāo)準(zhǔn)的logger的輸出配置。
func Flags() int
func SetFlags(flag int)
log標(biāo)準(zhǔn)庫提供了如下的flag選項(xiàng),它們是一系列定義好的常量。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。