From eb314f2a4d139f67c84cd85038821a11b140b626 Mon Sep 17 00:00:00 2001 From: David Jimenez Date: Wed, 8 Dec 2021 00:23:12 +0000 Subject: [PATCH] Switch on debug logs via env var flag (#260) Co-authored-by: makeworld --- amfora.go | 16 +++++++++++----- logger/logger.go | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/amfora.go b/amfora.go index 2f5f0ec..8183748 100644 --- a/amfora.go +++ b/amfora.go @@ -10,6 +10,7 @@ import ( "github.com/makeworld-the-better-one/amfora/client" "github.com/makeworld-the-better-one/amfora/config" "github.com/makeworld-the-better-one/amfora/display" + "github.com/makeworld-the-better-one/amfora/logger" "github.com/makeworld-the-better-one/amfora/subscriptions" ) @@ -20,10 +21,15 @@ var ( ) func main() { - // err := logger.Init() - // if err != nil { - // panic(err) - // } + log, err := logger.GetLogger() + if err != nil { + panic(err) + } + + debugModeEnabled := os.Getenv("AMFORA_DEBUG") == "1" + if debugModeEnabled { + log.Println("Debug mode enabled") + } if len(os.Args) > 1 { if os.Args[1] == "--version" || os.Args[1] == "-v" { @@ -42,7 +48,7 @@ func main() { } } - err := config.Init() + err = config.Init() if err != nil { fmt.Fprintf(os.Stderr, "Config error: %v\n", err) os.Exit(1) diff --git a/logger/logger.go b/logger/logger.go index 6ef41b4..3f17861 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -3,18 +3,42 @@ package logger // For debugging import ( + "io" + "io/ioutil" "log" "os" ) -var Log *log.Logger +var logger *log.Logger -func Init() error { - f, err := os.Create("debug.log") - if err != nil { - return err +func GetLogger() (*log.Logger, error) { + if logger != nil { + return logger, nil } - Log = log.New(f, "", log.LstdFlags) - Log.Println("Started Log") - return nil + + var writer io.Writer + var err error + + debugModeEnabled := os.Getenv("AMFORA_DEBUG") == "1" + if debugModeEnabled { + writer, err = os.Create("debug.log") + if err != nil { + return nil, err + } + } else { + // Suppress all logging output if debug mode is disabled + writer = ioutil.Discard + } + + logger = log.New(writer, "", log.LstdFlags) + + if !debugModeEnabled { + // Clear all flags to skip log output formatting step to increase + // performance somewhat if we're not logging anything + logger.SetFlags(0) + } + + logger.Println("Started logger") + + return logger, nil }