在Linux環境下,為golang應用配置日志的方式多樣,以下是兩種常見的方法:利用標準庫log包以及采用第三方日志庫logrus。
方式一:采用標準庫log包
首先,創建一個名為main.go的文件,并輸入如下代碼:
package main import ( "log" "os" ) func main() { // 設定日志記錄至文件 logFile, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatal(err) } defer logFile.Close() // 日志信息同時顯示在文件與終端 log.SetOutput(io.MultiWriter(logFile, os.Stdout)) // 輸出日志信息 log.Println("這是一個普通日志。") log.Printf("這是一個格式化的 %s 日志。", "普通") }
接著,在終端執行go run main.go命令,程序會生成一個名為app.log的文件,且日志既寫入文件也顯示在終端。
立即學習“go語言免費學習筆記(深入)”;
方式二:選用第三方日志庫logrus
第一步,通過以下指令安裝logrus庫:
go get github.com/sirupsen/logrus
第二步,同樣創建一個名為main.go的文件,輸入以下代碼:
package main import ( "github.com/sirupsen/logrus" "os" ) func main() { // 日志輸出至文件 logFile, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { logrus.Fatal(err) } defer logFile.Close() // 日志信息同時出現在文件與終端 logrus.SetOutput(io.MultiWriter(logFile, os.Stdout)) // 定義日志級別 logrus.SetLevel(logrus.InfoLevel) // 記錄日志 logrus.Info("這是一個普通日志。") logrus.WithFields(logrus.Fields{ "動物": "海象", "數量": 10, }).Info("一群海象從海洋中浮現") }
最后,在終端運行go run main.go,程序會生成一個名為app.log的文件,且日志既寫入文件也顯示在終端。
上述兩種方法均可實現Linux下Golang應用的日志配置。依據具體需求,可以選擇適合的方法。若需更多功能或自定義選項,可考慮其他第三方日志庫,例如zap、zerolog等。