package logger import ( "fmt" "io" "os" "path/filepath" "strings" "time" ) func check(e error) { if e != nil { panic(e) } } /** * 判断文件是否存在 存在返回 true 不存在返回false */ func checkFileIsExist(filename string) bool { var exist = true if _, err := os.Stat(filename); os.IsNotExist(err) { exist = false } return exist } /* @param writeString 写入文件字符串 @param file_pre 附加文件前缀 eg: logic.Loginfo("逾期统计开始","_yuqilv_"); */ func Log(writeString string,log_file_pre string,types int) { log_file_pre = "_"+log_file_pre date := time.Now().Format("2006-01-02") date2 := time.Now().Format("2006-01-02 15:04:05") path,_:=os.Getwd() CreateDateDir(path,"logs") var filename = path+"/logs/"+date+log_file_pre+".txt" var f *os.File var err1 error if checkFileIsExist(filename) { //如果文件存在 f, err1 = os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE,0755) } else { f, err1 = os.Create(filename) //创建文件 } check(err1) ss := StrReplace("\r\n","",writeString,1) //替换多余换行 io.WriteString(f,"\r\n"+date2+"----"+ss) //写入文件(字符串) if types == 1 { fmt.Print(writeString) } defer f.Close() //fmt.Print(err) } // CreateDateDir 根据当前日期来创建文件夹 func CreateDateDir(Path string,folderName string) string { if folderName == "" { folderName = time.Now().Format("20060102") } folderPath := filepath.Join(Path, folderName) if _, err := os.Stat(folderPath); os.IsNotExist(err) { // 必须分成两步:先创建文件夹、再修改权限 os.Mkdir(folderPath, 0755) //0777也可以os.ModePerm os.Chmod(folderPath, 0755) } return folderPath } // StrReplace str_replace() func StrReplace(search, replace, subject string, count int) string { return strings.Replace(subject, search, replace, count) }