package util
import (
"log"
"os"
"path"
"time"
"github.com/sirupsen/logrus"
)
var LogrusObj *logrus.Logger
func init() {
src, _ := setOutPutFile()
if LogrusObj != nil {
LogrusObj.Out = src
return
}
//实例化 now 然后指向文件指针
logger := logrus.New()
logger.Out = src //设置输出
logger.SetLevel(logrus.DebugLevel) //设置日志级别
logger.SetFormatter(&logrus.TextFormatter{
TimestampFormat: "2006-01-02 15:04:05",
})
LogrusObj=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-06-02") + ".log"
//日志文件 没有就创建
fileName := path.Join(logFilePath, logFileName)
_, err = os.Stat(fileName)
if os.IsNotExist(err) {
if err = os.MkdirAll(fileName, 0777); err != nil {
log.Panicln(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
}
【golang】logrus 日志类的初始化
最新推荐文章于 2025-04-25 13:24:58 发布