Hello! 欢迎来到小浪云!


Linux下Golang日志如何配置


avatar
小浪云 2025-05-27 22

Linux下Golang日志如何配置

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等。

相关阅读