alby-hub/logger/logger.go
Roland c265cc3133
chore: enable logrus report caller (#1386)
* chore: enable logrus report caller

* chore: only enable report caller in debug mode
2025-06-10 22:46:56 +07:00

56 lines
1.1 KiB
Go

package logger
import (
"os"
"path/filepath"
"strconv"
"github.com/orandin/lumberjackrus"
"github.com/sirupsen/logrus"
)
const (
logDir = "log"
logFilename = "nwc.log"
)
var Logger *logrus.Logger
var logFilePath string
func Init(logLevel string) {
Logger = logrus.New()
Logger.SetFormatter(&logrus.JSONFormatter{})
Logger.SetOutput(os.Stdout)
logrusLogLevel, err := strconv.Atoi(logLevel)
if err != nil {
logrusLogLevel = int(logrus.InfoLevel)
}
Logger.SetLevel(logrus.Level(logrusLogLevel))
if logrusLogLevel >= int(logrus.DebugLevel) {
Logger.ReportCaller = true
Logger.Debug("Logrus report caller enabled in debug mode")
}
}
func AddFileLogger(workdir string) error {
logFilePath = filepath.Join(workdir, logDir, logFilename)
fileLoggerHook, err := lumberjackrus.NewHook(
&lumberjackrus.LogFile{
Filename: logFilePath,
MaxAge: 3,
MaxBackups: 3,
},
logrus.InfoLevel,
&logrus.JSONFormatter{},
nil,
)
if err != nil {
return err
}
Logger.AddHook(fileLoggerHook)
return nil
}
func GetLogFilePath() string {
return logFilePath
}