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
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
|
|
}
|
|
|