【发布时间】:2021-05-16 20:22:05
【问题描述】:
我正在尝试读取日志文件并匹配每行中的一些字符串。现在,如果该行没有任何匹配的字符串,则程序会因res == 0 的长度而退出并在之后停止读取行。即使正则表达式之间不匹配,我也希望程序继续读取下一行。
func analyzeLog(s string) (*time.Time, bool) {
res := regexp.MustCompile(LogLineRegex).FindAllStringSubmatch(s, 1)
if len(res) == 0 {
panic("Not Matching")
}
timeString := res[0][1]
description := res[0][2]
t, err := time.Parse(TimeFormat, timeString)
check(err)
return &t, strings.HasPrefix(description, ErrorTerm)
}
func readLogFile(offset int64) (*ErrorMetrics, int64, error) {
...
...
...
for {
line, _, err := r.ReadLine()
if err == io.EOF {
break
} else if err != nil {
panic(err)
}
t, hasError := analyzeLog(string(line))
if hasError {
em.Count += 1
}
}
...
...
...
}
什么是前进的好方法?
【问题讨论】: