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.

60 lines
1.2 KiB

package util
import (
"github.com/sirupsen/logrus"
"log"
"os"
"path"
"time"
)
// 日志打印
var LoggerObj *logrus.Logger
func init() {
src, _ := setOutPutFile()
if LoggerObj != nil {
LoggerObj.Out = src
return
}
//实例化
logger := logrus.New()
logger.Out = src //设置输出
logger.SetLevel(logrus.DebugLevel) //设置日志级别
logger.SetFormatter(&logrus.TextFormatter{
TimestampFormat: "2006-01-02 15:04:05",
})
LoggerObj = logger
}
func setOutPutFile() (*os.File, error) {
now := time.Now()
logFilePath := ""
if dir, err := os.Getwd(); err == nil { //工作目录下
logFilePath = dir + "/logs/"
}
_, err := os.Stat(logFilePath)
if os.IsNotExist(err) {
if err = os.MkdirAll(logFilePath, 0777); err != nil {
log.Println(err.Error())
return nil, err
}
}
logFileName := now.Format("2006-1-02") + ".log"
//日志文件
fileName := path.Join(logFilePath, logFileName)
_, err = os.Stat(fileName)
if os.IsNotExist(err) {
if err = os.MkdirAll(fileName, 0777); err != nil {
log.Println(err.Error())
return nil, err
}
}
// 写入文件
src, err := os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
if err != nil {
return nil, err
}
return src, nil
}