package loges import ( "fmt" "log" "os" "time" ) var Loger *log.Logger func LongInit(errstr string) { fileUrl := "./runtime/log/" + time.Now().Format("2006_01") file := fileUrl + "/" + time.Now().Format("2006_01_02") + ".txt" fileIsTrue, fileErr := PathExists(fileUrl) if fileErr != nil { fmt.Printf("PathExists(%s),err(%v)\n", file, fileErr) } if fileIsTrue { writeLog(file, errstr) } else { mkdirErr := os.Mkdir(fileUrl, os.ModePerm) if mkdirErr != nil { fmt.Printf("mkdir failed![%v]\n", mkdirErr) } else { writeLog(file, errstr) } } } func writeLog(file, errstr string) { logFile, err := os.OpenFile(file, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0777) if err != nil { fmt.Println("Fail to find", file, "cServer start Failed") panic(err) } log.SetOutput(logFile) // 将文件设置为log输出的文件 log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) log.Printf(errstr) } /* 判断文件或文件夹是否存在 如果返回的错误为nil,说明文件或文件夹存在 如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在 如果返回的错误为其它类型,则不确定是否在存在 */ func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err }