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