[BUGFIX] Disable colored logging outputs when file is specified (#1603)

In some scenarios if a user has a `log_file_path` specified and a TTY seems to be detected this causes terminal coloring outputs to be written to the file. This in turn will cause issues when attempting to utilise the log with the provided fail2ban regexes.

We now override any TTY detection/logging treatments and disable coloring/removal of the timestamp when a user is utilising the text based logger to a file.
This commit is contained in:
Amir Zarrinkafsh 2021-01-15 22:16:41 +11:00 committed by GitHub
parent 8fa76499cb
commit fd7b4ada02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -0,0 +1,3 @@
package logging
const logFormatJSON = "json"

View File

@ -23,7 +23,7 @@ func InitializeLogger(format, filename string) error {
stackLevels := []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel}
logrus.AddHook(logrus_stack.NewHook(callerLevels, stackLevels))
if format == "json" {
if format == logFormatJSON {
logrus.SetFormatter(&logrus.JSONFormatter{})
} else {
logrus.SetFormatter(&logrus.TextFormatter{})
@ -36,6 +36,13 @@ func InitializeLogger(format, filename string) error {
return err
}
if format != logFormatJSON {
logrus.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
FullTimestamp: true,
})
}
logrus.SetOutput(f)
}