日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Golang的日志记录器

發布時間:2025/3/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Golang的日志记录器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Fatal 系列函數(log.Fatalln)用來寫日志消息,然后使用 os.Exit(1)終止程序。
Panic 系列函數(log.Panicln)用來寫日志消息,然后觸發一個 panic。
日志記錄器是多 goroutine 安全的

// This sample program demonstrates how to create customized loggers. package mainimport ("io""io/ioutil""log""os" )var (Trace *log.Logger // Just about anythingInfo *log.Logger // Important informationWarning *log.Logger // Be concernedError *log.Logger // Critical problem )func init() {file, err := os.OpenFile("errors.txt",os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err != nil {log.Fatalln("Failed to open error log file:", err)}Trace = log.New(ioutil.Discard,"TRACE: ",log.Ldate|log.Ltime|log.Lshortfile)Info = log.New(os.Stdout,"INFO: ",log.Ldate|log.Ltime|log.Lshortfile)Warning = log.New(os.Stdout,"WARNING: ",log.Ldate|log.Ltime|log.Lshortfile)Error = log.New(io.MultiWriter(file, os.Stderr),"ERROR: ",log.Ldate|log.Ltime|log.Lshortfile) }func main() {Trace.Println("I have something standard to say")Info.Println("Special Information")Warning.Println("There is something you need to know about")Error.Println("Something has failed") }

首先為 4 個日志等級聲明了 4 個 Logger 類型的指針變量;

其次使用?log 包的 New 函數, 創建并正確初始化四個Logger 類型的值,函數 New 會返回新創建的值的地址,賦值給四個變量。

最后直接調用Trace.Println

Logger.New函數的聲明:

// New 創建一個新的 Logger。 // out 參數設置日志數據將被寫入的目的地 // 參數 prefix 會在生成的每行日志的最開始出現 // 參數 flag 定義日志記錄包含哪些屬性 func New(out io.Writer, prefix string, flag int) *Logger { return &Logger{out: out, prefix: prefix, flag: flag} }

ioutil.Discard 是一個 io.Writer,所有的 Write 調用都不會有動作,但是會成功返回;

io.MultiWriter 可以同時向多個 Writer 做輸出。

總結

以上是生活随笔為你收集整理的Golang的日志记录器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。