package main import ( "fmt" "os" "path/filepath" "regexp" ) func main() { dir := C.Dir match := C.Match url := C.Url key := C.Key info := C.Info regex := regexp.MustCompile(match) dirs, err := os.ReadDir(dir) if err != nil { fmt.Println(err) return } var okList []string for _, item := range dirs { if regex.MatchString(item.Name()) { file, err := os.Open(filepath.Join(dir, item.Name())) if err != nil { continue } var logTexts []string ReadAfterSeq(file, 0, '\n', func(bytes []byte) { logTexts = append(logTexts, string(bytes)) }) file.Close() for _, text := range logTexts { if calculateSimilaritys(1, text, okList...) { continue } err := requestDingApi(url, message{ Text: text, Filename: item.Name(), Key: key, Info: info, }) if err != nil { fmt.Println(err) fmt.Println("日志服务器关闭") return } okList = append(okList, text) } } } fmt.Println("完成上报数量:", len(okList)) }