52 lines
935 B
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")
|
|
}
|