composer: add json log formatting

Configurable via config file/env
This commit is contained in:
Diaa Sami 2021-10-08 13:22:51 +02:00 committed by Diaa Sami
parent aea77ed3de
commit 3b6156a240
4 changed files with 21 additions and 4 deletions

View file

@ -10,10 +10,11 @@ import (
)
type ComposerConfigFile struct {
Koji KojiAPIConfig `toml:"koji"`
Worker WorkerAPIConfig `toml:"worker"`
WeldrAPI WeldrAPIConfig `toml:"weldr_api"`
LogLevel string `toml:"log_level"`
Koji KojiAPIConfig `toml:"koji"`
Worker WorkerAPIConfig `toml:"worker"`
WeldrAPI WeldrAPIConfig `toml:"weldr_api"`
LogLevel string `toml:"log_level"`
LogFormat string `toml:"log_format"`
}
type KojiAPIConfig struct {
@ -104,6 +105,8 @@ func GetDefaultConfig() *ComposerConfigFile {
},
},
},
LogLevel: "info",
LogFormat: "text",
}
}

View file

@ -59,6 +59,7 @@ func TestDefaultConfig(t *testing.T) {
}
require.Equal(t, expectedWeldrAPIConfig, defaultConfig.WeldrAPI)
require.Equal(t, "text", defaultConfig.LogFormat)
}
func TestConfig(t *testing.T) {

View file

@ -42,6 +42,15 @@ func main() {
logrus.Info("Failed to load loglevel from config:", err)
}
switch config.LogFormat {
case "text":
logrus.SetFormatter(&logrus.TextFormatter{})
case "json":
logrus.SetFormatter(&logrus.JSONFormatter{})
default:
logrus.Infof("Failed to set logging format from config, '%s' is not a valid option", config.LogFormat)
}
logrus.Info("Loaded configuration:")
err = DumpConfig(*config, logrus.StandardLogger().WriterLevel(logrus.InfoLevel))
if err != nil {