linux

如何用正则表达式匹配Golang日志

小樊
48
2025-10-06 17:54:47
栏目: 编程语言

在Golang中,你可以使用regexp包来处理正则表达式。为了匹配Golang日志,首先需要了解Golang日志的格式。假设你的Golang日志格式如下:

[2021-09-01 12:34:56] [INFO] This is an example log message.

你可以使用以下正则表达式来匹配这种格式的日志:

package main

import (
	"fmt"
	"regexp"
)

func main() {
	logPattern := `(\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\]) \[(INFO|WARN|ERROR)\] (.+)`
	re := regexp.MustCompile(logPattern)

	logLine := "[2021-09-01 12:34:56] [INFO] This is an example log message."
	match := re.FindStringSubmatch(logLine)

	if len(match) > 0 {
		fmt.Printf("Date: %s\n", match[1])
		fmt.Printf("Level: %s\n", match[2])
		fmt.Printf("Message: %s\n", match[3])
	} else {
		fmt.Println("No match found")
	}
}

在这个例子中,我们定义了一个正则表达式logPattern,用于匹配Golang日志。然后,我们使用regexp.MustCompile函数编译正则表达式。接下来,我们使用re.FindStringSubmatch函数在日志行中查找匹配项。如果找到匹配项,我们将打印出日期、日志级别和消息。

你可以根据你的Golang日志格式调整正则表达式。

0
看了该问题的人还看了