log.Logger可通過(guò)log.New創(chuàng)建,自定義輸出目標(biāo)、前綴和標(biāo)志。示例:輸出到標(biāo)準(zhǔn)輸出或文件,使用io.MultiWriter實(shí)現(xiàn)多目標(biāo)輸出,結(jié)合log.Ldate、log.Ltime等標(biāo)志控制格式。
在Go語(yǔ)言中,log.Logger 是標(biāo)準(zhǔn)庫(kù) log 提供的一個(gè)靈活的日志記錄器類型,允許自定義輸出目標(biāo)、前綴和標(biāo)志。通過(guò)創(chuàng)建自定義的 log.Logger 對(duì)象,可以更好地控制日志格式和輸出位置。
log.Logger 可以通過(guò) log.New 函數(shù)創(chuàng)建,該函數(shù)接收三個(gè)參數(shù):
package main import ( "io" "log" "os" ) func main() { // 創(chuàng)建一個(gè)輸出到標(biāo)準(zhǔn)輸出的日志器 logger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile) // 使用自定義logger輸出日志 logger.Println("程序啟動(dòng)成功") logger.Printf("當(dāng)前用戶: %s", "alice") }
將日志寫入文件是常見(jiàn)需求。只需將文件句柄作為 io.Writer 傳入即可。
示例代碼:file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatal("無(wú)法打開(kāi)日志文件:", err) } defer file.Close() // 創(chuàng)建寫入文件的日志器 fileLogger := log.New(file, "DEBUG: ", log.LstdFlags|log.Lshortfile) fileLogger.Println("這是一條調(diào)試信息")
使用 io.MultiWriter 可以讓日志同時(shí)輸出到多個(gè)目標(biāo)。
立即學(xué)習(xí)“go語(yǔ)言免費(fèi)學(xué)習(xí)筆記(深入)”;
示例代碼:file, _ := os.OpenFile("combined.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) defer file.Close() multiWriter := io.MultiWriter(os.Stdout, file) combinedLogger := log.New(multiWriter, "APP: ", log.LstdFlags|log.Lmicroseconds) combinedLogger.Println("這條日志會(huì)同時(shí)出現(xiàn)在終端和文件中")
log包提供多個(gè)常量用于組合日志格式:
以上就是Golang logLogger日志對(duì)象創(chuàng)建示例的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)