温馨提示×

如何自定义CentOS Golang日志格式

小樊
53
2025-10-15 09:45:48
栏目: 编程语言

在 CentOS 系统中,自定义 Golang 日志格式可以通过使用第三方日志库或者自己实现一个日志处理器来实现。这里我将介绍如何使用第三方日志库 logrus 来自定义日志格式。

  1. 首先,确保你已经安装了 Go 语言环境。如果没有,请访问 https://golang.org/dl/ 下载并安装。

  2. 安装 logrus 库。在终端中运行以下命令:

go get github.com/sirupsen/logrus
  1. 创建一个名为 main.go 的文件,并在其中编写以下代码:
package main

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

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

	// 设置日志级别
	logger.SetLevel(logrus.DebugLevel)

	// 自定义日志格式
	logger.SetFormatter(&logrus.TextFormatter{
		FullTimestamp: true,
		CallerPrettyfier: func(f *runtime.Frame) (string, string) {
			filename := f.File
			funcName := f.Function
			line := f.Line
			return filename, fmt.Sprintf("%s:%d", funcName, line)
		},
	})

	// 使用自定义格式记录日志
	logger.WithFields(logrus.Fields{
		"animal": "walrus",
		"size":   10,
	}).Info("A group of walrus emerges from the ocean")

	logger.WithFields(logrus.Fields{
		"omg":    true,
		"number": 100,
	}).Warn("The group's number increased tremendously!")

	logger.WithFields(logrus.Fields{
		"omg":    true,
		"number": 100,
	}).Fatal("The ice breaks!")
}

在这个示例中,我们使用 logrus 库创建了一个新的日志实例,并设置了日志级别为 DebugLevel。然后,我们自定义了日志格式,包括时间戳、调用者文件名、函数名和行号。最后,我们使用自定义格式记录了三条日志。

  1. 运行 main.go 文件:
go run main.go

你将看到如下输出,其中包含了自定义的日志格式:

time="2022-01-01T00:00:00+08:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10 caller=main.go:18
time="2022-01-01T00:00:00+08:00" level=warn msg="The group's number increased tremendously!" omg=true number=100 caller=main.go:23
time="2022-01-01T00:00:00+08:00" level=fatal msg="The ice breaks!" omg=true number=100 caller=main.go:28

这样,你就成功地在 CentOS 系统中自定义了 Golang 日志格式。你可以根据自己的需求调整日志格式和内容。

0