linux

如何定制Golang日志格式

小樊
44
2025-08-08 06:08:05
栏目: 编程语言

在Golang中,可以使用标准库"log"或者第三方库"logrus"、"zap"等来记录日志。这里以"logrus"为例,介绍如何定制日志格式。

首先,需要安装logrus库:

go get github.com/sirupsen/logrus

接下来,创建一个Go程序并导入logrus库:

package main

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

然后,可以通过设置logrus的Formatter来自定义日志格式。logrus支持多种格式,如TextFormatter、JSONFormatter等。这里以自定义TextFormatter为例:

package main

import (
	"os"
	"time"

	"github.com/sirupsen/logrus"
)

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

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

	// 自定义日志格式
	logger.SetFormatter(&logrus.TextFormatter{
		DisableColors: true, // 禁用颜色
		FullTimestamp: true, // 显示完整时间戳
		TimestampFormat: "2006-01-02 15:04:05", // 时间戳格式
		CallerPrettyfier: func(f *runtime.Frame) (string, string) {
			filename := f.File
			if len(filename) > 40 {
				filename = filename[:40]
			}
			return filename, ""
		},
	})

	// 记录日志
	logger.Debug("这是一条Debug日志")
	logger.Info("这是一条Info日志")
	logger.Warn("这是一条Warn日志")
	logger.Error("这是一条Error日志")
}

在这个例子中,我们设置了以下自定义选项:

运行这个程序,你会看到类似以下的日志输出:

2022-01-01 12:34:56 main.go:28: DEBUG: 这是一条Debug日志
2022-01-01 12:34:56 main.go:29: INFO: 这是一条Info日志
2022-01-01 12:34:56 main.go:30: WARN: 这是一条Warn日志
2022-01-01 12:34:56 main.go:31: ERROR: 这是一条Error日志

这样,你就成功地定制了Golang日志格式。如果需要更多自定义选项,可以查阅logrus文档:https://github.com/sirupsen/logrus

0
看了该问题的人还看了