知行学院重新架构Golang版后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB

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
}