diff --git a/cmd/root.go b/cmd/root.go index b63b5a9..9b4d781 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "os" + "strings" "git.bloy.org/mike/hasshelper/web" "github.com/rs/zerolog" @@ -20,12 +21,22 @@ var rootCmd = &cobra.Command{ } func rootCmdRun(cmd *cobra.Command, args []string) { - var logger = zerolog.New(os.Stderr).With().Timestamp().Logger() - var err error + logLevel, err := zerolog.ParseLevel(viper.GetString("loglevel")) + zerolog.SetGlobalLevel(logLevel) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } + var logger zerolog.Logger + if viper.GetString("deployment") == "prod" { + logger = zerolog.New(os.Stderr) + } else { + logger = zerolog.New(zerolog.ConsoleWriter{ + Out: os.Stdout, + FormatLevel: func(i interface{}) string { return strings.ToUpper(fmt.Sprintf("%-6s|", i)) }, + }) + } + logger = logger.With().Timestamp().Caller().Logger() logger.Info().Str("version", viper.GetString("version")).Msg("HASSHelper startup") exitchan := make(chan bool) web.Run(logger, exitchan) @@ -57,6 +68,7 @@ func init() { viper.SetEnvPrefix("hasshelper") viper.Set("version", gitVersion) viper.SetDefault("deployment", "prod") + viper.SetDefault("loglevel", "info") } func initConfig() {