溫馨提示×

Golang日志中關鍵信息提取

小樊
37
2025-08-24 11:49:43
欄目: 編程語言

在Golang中,我們可以使用正則表達式(regexp)庫來提取日志中的關鍵信息。以下是一個簡單的示例,展示了如何從日志字符串中提取關鍵信息:

package main

import (
	"fmt"
	"regexp"
)

func main() {
	log := `2021/08/01 12:34:56 INFO: User 12345 logged in from IP 192.168.1.1`

	// 定義正則表達式模式
	pattern := `(\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}) (\w+): User (\d+) logged in from IP (\d+\.\d+\.\d+\.\d+)`

	// 編譯正則表達式
	re, err := regexp.Compile(pattern)
	if err != nil {
		fmt.Println("Error compiling regex:", err)
		return
	}

	// 在日志字符串中查找匹配項
	match := re.FindStringSubmatch(log)

	if match != nil {
		fmt.Println("Date and Time:", match[1])
		fmt.Println("Log Level:", match[2])
		fmt.Println("User ID:", match[3])
		fmt.Println("IP Address:", match[4])
	} else {
		fmt.Println("No match found")
	}
}

在這個示例中,我們首先定義了一個日志字符串,然后創建了一個正則表達式模式來匹配日期、時間、日志級別、用戶ID和IP地址。接下來,我們使用regexp.Compile()函數編譯正則表達式,并使用FindStringSubmatch()方法在日志字符串中查找匹配項。如果找到匹配項,我們將提取并打印關鍵信息。

這個示例僅用于演示目的,實際應用中可能需要根據日志格式和需求進行調整。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女