Skip to content

Commit

Permalink
fix: Log to multi targets not working
Browse files Browse the repository at this point in the history
  • Loading branch information
pluveto committed Feb 4, 2023
1 parent fb77d2b commit 8177650
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 61 deletions.
30 changes: 20 additions & 10 deletions cmd/greet/app/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ import (
)

func InitLogger(conf Log, verbose bool) {
newLoggerCount := len(conf.Stdout) + len(conf.File)
if newLoggerCount != 0 {
for i := 0; i < newLoggerCount; i++ {
logger.AddLogger(logrus.New())
}
}
nextLoggerIndex := 1

if verbose {
logger.SetLevel(logrus.DebugLevel)
Expand All @@ -17,38 +24,41 @@ func InitLogger(conf Log, verbose bool) {
} else {
logger.SetLevel(levelToLogrusLevel(conf.Level))
}

for _, stdout := range conf.Stdout {
currentLogger := logger.DefaultCombinedLogger.GetLogger(nextLoggerIndex)
switch stdout.Format {
case LogFormatJSON:
logger.SetFormatter(&logrus.JSONFormatter{})
currentLogger.SetFormatter(&logrus.JSONFormatter{})
case LogFormatText:
logger.SetFormatter(&logrus.TextFormatter{})
currentLogger.SetFormatter(&logrus.TextFormatter{})
}
switch stdout.Output {
case LogOutputStdout:
logger.SetOutput(os.Stdout)
currentLogger.SetOutput(os.Stdout)
case LogOutputStderr:
logger.SetOutput(os.Stderr)
currentLogger.SetOutput(os.Stderr)
}
nextLoggerIndex++
}

logger.Debugf("%d stdout logger loaded", len(conf.Stdout))

for _, file := range conf.File {
currentLogger := logger.DefaultCombinedLogger.GetLogger(nextLoggerIndex)

switch file.Format {
case LogFormatJSON:
logger.SetFormatter(&logrus.JSONFormatter{})
currentLogger.SetFormatter(&logrus.JSONFormatter{})
case LogFormatText:
logger.SetFormatter(&logrus.TextFormatter{})
currentLogger.SetFormatter(&logrus.TextFormatter{})
}
logger.SetOutput(&lumberjack.Logger{
currentLogger.SetOutput(&lumberjack.Logger{
Filename: file.Path,
MaxSize: file.MaxSize,
MaxAge: file.MaxAge,
MaxBackups: 3,
Compress: true,
})
nextLoggerIndex++
}

logger.Debugf("%d file logger loaded", len(conf.File))
}
2 changes: 1 addition & 1 deletion cmd/greet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func main() {
args = loadArgsValid()
conf = loadConfValid(args.Config, defaultConf, "config.toml")

app.InitLogger(defaultConf.Log, args.Verbose)
app.InitLogger(conf.Log, args.Verbose)
logger.Debug("log level: ", logger.GetLevel())

app.Run(args, conf)
Expand Down
Loading

0 comments on commit 8177650

Please sign in to comment.