func work(configDir string) { log.Println("") log.Println(".... 开始执行 ....") log.Println("读取配置信息中...") // 读取配置文件 configArr, err := tailMail.ReadConfig() if err != nil { log.Println(err) } // 读取进度文件 progressMap, err := tailMail.ReadProgress() if err != nil { log.Println(err) } // 组装需要发送的信息数组 var tailInfoMap map[string]tailMail.TailInfoEntity tailInfoMap = make(map[string]tailMail.TailInfoEntity, len(configArr.ConfigArr)) for _, conf := range configArr.ConfigArr { fn := conf.FileName tailInfo := tailMail.TailInfoEntity{ FileName: fn, MonitorTime: time.Now(), IncrementalTxt: new(bytes.Buffer), // 读取出来的增量内容 MailBodyHtml: new(bytes.Buffer), // 要发送的邮件内容正文body HasNewInfo: true, //是不是有新的需要发送的信息 Config: conf, LastFileSize: progressMap.ProgressMap[fn], MailServer: configArr.MailServer, } tailInfoMap[fn] = tailInfo } // 遍历每个配置文件,并处理数据 for _, info := range tailInfoMap { log.Println("正在分析文件:", info.FileName) tailFileMail(&info, configDir) if info.HasNewInfo { log.Println("更新进度信息配置文件。") // 更新进度信息 progressMap.ProgressMap[info.FileName] = info.LastFileSize err = tailMail.WriteProgress(&progressMap) if err != nil { log.Println("写进度配置文件异常:") log.Println(err) } } } }
// 进度文件初始化测试 func saveProgressInfoInit() { progressArr := tailMail.TailProgressCollectionEntity{ ProgressMap: map[string]int64{ "E:\\tmp\\dnsdata\\auth.acc-2014-01-18-64.35.log": int64(0), "E:\\tmp\\dnsdata\\138.18.stdout-2014_01_22.log": int64(0), }, } err := tailMail.WriteProgress(&progressArr) if err != nil { fmt.Println(err) } }