IDEA go插件下载地址 https://plugins.jetbrains.com/plugin/9568-go
findstr /S /I /MM "sourceIp" /*.java
func startCheckDeleteLogTimer(file string) {
vava
//get now time
now := time.Now()
//get duration of now and 00:00:00 as Timer duration
du := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).Sub(now)
//count down timer
t := time.NewTimer(du)
wwwe
isFirst := make(chan bool, 1)
select {
case isFirstTime := <-t.C:
fmt.Println("first time for exec delete auditlog check.. FirstTime: ", isFirstTime)
t.Stop()
checkDeleteAuditLog(file)
isFirst <- false
}
//this goroutine block until count down timer stop
<-isFirst
//ticker for exec delete auditlog check every 24 hours
checkDelTicker := time.Tick(24 * time.Hour)
for {
select {
case <- checkDelTicker:
fmt.Println("will exec delete auditlog check.. CurrentTime: ", time.Now())
checkDeleteAuditLog(file)
}
}
}
err := zipFile(config.LogFile, backfile)
if err != nil {
fmt.Println(fmt.Sprintf("zip file %s to %s error : %v", config.LogFile, backfile, err))
return
} else {
os.Remove(config.LogFile)
}
al.createFile()
os.Chmod(backfile, 0400)
al.deleteOldBackfiles(dir)
func zipFile(source, target string) error {
zipFile, err := os.OpenFile(target, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0440)
if err != nil {
fmt.Println(err)
return err
}
defer zipFile.Close()
archive := zip.NewWriter(zipFile)
defer archive.Close()
return filepath.Walk(source, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
header, err := zip.FileInfoHeader(info)
if err != nil {
return err
}
if !info.IsDir() {
header.Method = zip.Deflate
}
header.SetModTime(time.Now().UTC())
header.Name = path
writer, err := archive.CreateHeader(header)
if err != nil {
return err
}
if info.IsDir() {
return nil
}
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
_, err = io.Copy(writer, file)
return err
})
}
java: