Go語言之log庫

2021-10-05 01:18:00 字數 2596 閱讀 9928

go語言內建的log包實現了簡單的日誌服務。以下主要介紹log的基本使用

package main

import

"log"

func

main()

輸出結果如下:

2020/04

/0115:

27:29 這是一條很普通的日誌。

2020/04

/0115:

27:29 這是一條不正常的日誌。

2020/04

/0115:

27:29 這是一條會觸發fatal的日誌。

logger會列印每條日誌資訊的日期、時間,預設輸出到系統的標準錯誤。fatal系列函式會在寫入日誌資訊後呼叫os.exit(1)。panic系列函式會在寫入日誌資訊後panic

預設情況下的logger只會提供日誌的時間資訊,但是很多情況下我們希望得到更多資訊,比如記錄該日誌的檔名和行號等。log標準庫中為我們提供了定製這些設定的方法。

log標準庫中的flags函式會返回標準logger的輸出配置,而setflags函式用來設定標準logger的輸出配置。

func

flags()

intfunc

setflags

(flag int

)

flag定義如下常量

const

( ldate =

1<<

iota

// 日期:2009/01/23

llongfile // 檔案全路徑名+行號: /a/b/c/d.go:23

lshortfile // 檔名+行號:d.go:23(會覆蓋掉llongfile)

lutc // 使用utc時間

lstdflags = ldate | ltime // 標準logger的初始值

)

示例如下:

func

main()

輸出如下:

2020/04

/0115:

26:34.023049

/code/main.go:

5: 這是一條很普通的日誌。

定義方法:

func

prefix()

string

//檢視標準logger的輸出字首

func

setprefix

(prefix string

)//設定輸出字首

示例如下:

func

main()

顯示:

[大胸弟]

2020/04

/0115:

29:13.093592

/code/main.go:

6: 這是一條很普通的日誌。

func

setoutput

(w io.writer)

setoutput函式用來設定標準logger的輸出目的地,預設是標準錯誤輸出。

示例,將日誌輸出到同目錄下的xx.log檔案中

func

main()

log.

setoutput

(logfile)

log.

setflags

(log.llongfile | log.lmicroseconds | log.ldate)

log.

setprefix

("[大胸弟]"

) log.

println

("這是一條很普通的日誌。"

)}

如果要使用標準的logger,通常將上面的配置寫入init函式中

func

init()

log.

setoutput

(logfile)

log.

setflags

(log.llongfile | log.lmicroseconds | log.ldate)

}

log標準庫中還提供了乙個建立新logger物件的建構函式–new,支援我們建立自己的logger示例。new函式的簽名如下:

func

new(out io.writer,prefix string

, flag int

)*logger

new建立乙個logger物件。其中,引數out設定日誌資訊寫入的目的地。引數prefix會新增到生成的每一條日誌前面。引數flag定義日誌的屬性(時間、檔案等等)。

示例

func

main()

說明:輸出到標準輸出,字首為,後面為定義日誌格式。

Go語言標準庫之log

目錄 四 建立logger 五 總結 go 從入門到放棄完整教程目錄 更有python go pytorch tensorflow 爬蟲 人工智慧教學等著你 更新 更全的 go從入門到放棄 的更新 更有python go 人工智慧教學等著你 無論是軟體開發的除錯階段還是軟體上線之後的執行階段,日誌一...

Go語言標準庫log介紹

無論是軟體開發的除錯階段還是軟體上線之後的執行階段,日誌一直都是非常重要的乙個環節,我們也應該養成在程式中記錄日誌的好習慣。go語言內建的log包實現了簡單的日誌服務。本文介紹了標準庫log的基本使用。log包定義了logger型別,該型別提供了一些格式化輸出的方法。本包也提供了乙個預定義的 標準 ...

Go語言之GO 語言常量

相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。const pi 3.1415 const e 2.7182宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...