CentOS下如何定制Golang日志格式

在 CentOS 系统下,你可以使用 Go 语言的标准库 log 或第三方日志库(如 logrus、zap 等)来定制日志格式。这里我将为你提供两种方法的示例。

方法一:使用 Go 标准库 log

  1. 创建一个名为 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.Fatalf("error opening log file: %v", err)
 }
 defer logFile.Close()

 // 设置日志输出到文件
 log.SetOutput(logFile)

 // 设置日志格式
 log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)

 // 写入日志
 log.Println("This is a log message")
}
  1. 在终端中运行 go run main.go,程序将创建一个名为 app.log 的日志文件,其中包含自定义的日志格式。

方法二:使用第三方日志库 logrus

  1. 首先,你需要安装 logrus 库。在终端中运行以下命令:
go get github.com/sirupsen/logrus
  1. 创建一个名为 main.go 的文件,并添加以下代码:
package main

import (
 "github.com/sirupsen/logrus"
)

func main() {
 // 创建一个新的日志实例
 logger := logrus.New()

 // 设置日志输出到文件
 file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
 if err != nil {
  logrus.Fatalf("Error opening log file: %v", err)
 }
 logger.Out = file

 // 设置日志格式为文本格式
 logger.SetFormatter(&logrus.TextFormatter{
  TimestampFormat: "2006-01-02 15:04:05",
  FullTimestamp:   true,
 })

 // 写入日志
 logger.Info("This is an info message")
}
  1. 在终端中运行 go run main.go,程序将创建一个名为 app.log 的日志文件,其中包含自定义的日志格式。

这两种方法都可以帮助你在 CentOS 系统下定制 Golang 日志格式。你可以根据自己的需求选择合适的方法。