From 6f9887b882f3e8d083b1f518b7d2a44b8f0ce99b Mon Sep 17 00:00:00 2001 From: Mircea-Pavel ANTON Date: Mon, 12 Aug 2024 17:07:39 +0000 Subject: [PATCH] feat: set configurable log level and log format --- main.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/main.go b/main.go index 63e7efe..eb2f832 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,48 @@ package main import ( + "os" + "strings" + "github.com/mirceanton/talswitcher/cmd" + log "github.com/sirupsen/logrus" ) +func SetLogLevel() { + logLevel := os.Getenv("TALSWITCHER_LOG_LEVEL") + if logLevel == "" { + logLevel = "info" + } + + level, err := log.ParseLevel(strings.ToLower(logLevel)) + if err != nil { + log.Fatalf("Invalid log level: %v", err) + } + log.SetLevel(level) +} + +func SetLogFormat() { + logFormat := os.Getenv("TALSWITCHER_LOG_FORMAT") + if logFormat == "" { + logFormat = "text" + } + + switch strings.ToLower(logFormat) { + case "json": + log.SetFormatter(&log.JSONFormatter{}) + case "text": + log.SetFormatter(&log.TextFormatter{FullTimestamp: true}) + + default: + log.Fatalf("Invalid logformat: %v", logFormat) + } +} + +func init() { + SetLogLevel() + SetLogFormat() +} + func main() { cmd.Execute() }