Files
Mmx 938421fcc8 fix: log init panic
reference to #41
2024-10-15 15:25:14 +08:00

62 lines
1.3 KiB
Go

package config
import (
"github.com/Mmx233/BitSrunLoginGo/internal/config/keys"
nested "github.com/antonfisher/nested-logrus-formatter"
"io"
"os"
"strings"
"time"
log "github.com/sirupsen/logrus"
)
var Logger *log.Logger
func newLogFormater(noColors bool) log.Formatter {
return &nested.Formatter{
NoColors: noColors,
TimestampFormat: "2006-01-02 15:04:05",
}
}
func initLogPre() {
Logger = log.New()
Logger.SetFormatter(newLogFormater(false))
}
func initLogFinal() {
if Settings.Log.DebugLevel {
Logger.SetLevel(log.DebugLevel)
}
logger := Logger.WithField(keys.LogComponent, "init log")
if Settings.Log.WriteFile {
//日志路径初始化与处理
if !strings.HasSuffix(Settings.Log.FilePath, "/") {
Settings.Log.FilePath += "/"
}
err := os.MkdirAll(Settings.Log.FilePath, os.ModePerm)
if err != nil {
logger.Fatalln(err)
}
if Settings.Log.FileName == "" {
Settings.Log.FileName = time.Now().Format("2006.01.02-15.04.05") + ".log"
}
f, err := os.OpenFile(Settings.Log.FilePath+Settings.Log.FileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
logger.Fatalln(err)
}
// Disable log colors
Logger.SetFormatter(newLogFormater(true))
// set multiple log output
mw := io.MultiWriter(os.Stdout, f)
Logger.SetOutput(mw)
}
}