Files
BatchuKVM/server/logger/logger.go

52 lines
935 B
Go

package logger
import (
"os"
"path/filepath"
"NanoKVM-Server/config"
"github.com/sirupsen/logrus"
)
func openLogFile(filename string) (*os.File, error) {
absPath, err := filepath.Abs(filename)
if err != nil {
return nil, err
}
file, err := os.OpenFile(absPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o644)
if err != nil {
return nil, err
}
return file, nil
}
func Init() {
conf := config.GetInstance()
level, err := logrus.ParseLevel(conf.Logger.Level)
if err != nil {
level = logrus.ErrorLevel
}
logrus.SetLevel(level)
if conf.Logger.File == "" || conf.Logger.File == "stdout" {
logrus.SetOutput(os.Stdout)
} else {
fh, err := openLogFile(conf.Logger.File)
if err != nil {
logrus.Error("open log file failed:", err)
logrus.SetOutput(os.Stdout)
} else {
logrus.SetOutput(fh)
}
}
logrus.SetReportCaller(true)
logrus.SetFormatter(&formatter{})
logrus.Info("logger set success")
}