Go语言日志格式如"[2021-09-0112:34:56][INFO]消息内容",利用regexp包的正则表达式(\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2})[(INFO|WARN|ERROR)](.+)定义三个捕获组,分别匹配日期时间、日志级别和消息文本。调用FindStringSubmatch函数返回字符串切片,通过索引1获取
Golang 日志解析常需借助正则表达式。例如,若日志格式如下:

长期稳定更新的攒劲资源: >>>点此立即查看<<<
[2021-09-01 12:34:56] [INFO] This is an example log message.
通过正则表达式提取日期、日志级别及正文的方法十分直接——使用 Go 标准库 regexp 包即可完成。以下是一个可用的正则表达式及完整示例代码:
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 定义了日志匹配规则:日期、级别和消息分别由捕获组包裹。使用 regexp.MustCompile 编译该模式,再通过 FindStringSubmatch 从目标字符串提取匹配结果。若匹配成功,即可获取日期、日志级别及消息文本。
实际项目中,日志格式可能更复杂——例如包含时间戳、模块名、请求 ID 等。只需按照相同思路调整正则表达式的分组,核心逻辑保持一致,即可实现 Golang 日志的正则匹配与解析。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述