From a82ba0f51b21141d919f1608e45a593420ba1167 Mon Sep 17 00:00:00 2001 From: Piper Pentagram Date: Fri, 8 Nov 2024 13:54:19 -0800 Subject: [PATCH 1/2] Use a singleton pattern for logging This change migrates the internal/logging package to a singleton pattern. It now exports a Log variable which can be acquired from any other package. --- internal/logging/logging.go | 12 +++--------- main.go | 11 +++++------ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/internal/logging/logging.go b/internal/logging/logging.go index d22af85..515cd17 100644 --- a/internal/logging/logging.go +++ b/internal/logging/logging.go @@ -13,10 +13,10 @@ type Logger struct { } var ( - logger Logger + Log Logger ) -func InitLogger(appConfig *config.AppConfig) Logger { +func InitLogger(appConfig *config.AppConfig) { lj := &lumberjack.Logger{ Filename: filepath.Join(appConfig.LogDir, appConfig.LogFile), @@ -26,17 +26,11 @@ func InitLogger(appConfig *config.AppConfig) Logger { Compress: appConfig.LogCompression, } - logger = Logger{ + Log = Logger{ slog.New( slog.NewJSONHandler(lj, &slog.HandlerOptions{ AddSource: appConfig.LogAddSource, }), ), } - - return logger -} - -func GetLogger() Logger { - return logger } diff --git a/main.go b/main.go index 3ece662..98a25b5 100644 --- a/main.go +++ b/main.go @@ -18,7 +18,6 @@ var ( Guild = flag.String("guild", "", "Guild ID") // Do we want it to be tied to one server? appConfig *config.AppConfig - Log logging.Logger ) func main() { @@ -35,7 +34,7 @@ func main() { log.Fatal(err) } - Log = logging.InitLogger(appConfig) + logging.InitLogger(appConfig) err = startBot() @@ -49,21 +48,21 @@ func startBot() error { err := state.DiscordSession.Open() if err != nil { - Log.Error("could not open discord session", "type", "error", "error", err) + logging.Log.Error("could not open discord session", "type", "error", "error", err) return err } - Log.Info("shutting down gracefully", "type", "shutdown") + logging.Log.Info("shutting down gracefully", "type", "shutdown") sigch := make(chan os.Signal, 1) signal.Notify(sigch, os.Interrupt) <-sigch - Log.Info("shutting down gracefully", "type", "shutdown") + logging.Log.Info("shutting down gracefully", "type", "shutdown") err = state.DiscordSession.Close() if err != nil { - Log.Error("could not close discord session gracefully", "type", "error", "error", err) + logging.Log.Error("could not close discord session gracefully", "type", "error", "error", err) return err } From f86efba6bdfff0fc5d02b46e91e5ae9437d4e3f2 Mon Sep 17 00:00:00 2001 From: Piper Pentagram Date: Fri, 8 Nov 2024 14:00:27 -0800 Subject: [PATCH 2/2] Rename redundant init function This change renames logging.InitLogger() to logging.Init(). --- internal/logging/logging.go | 2 +- main.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/logging/logging.go b/internal/logging/logging.go index 515cd17..52302fe 100644 --- a/internal/logging/logging.go +++ b/internal/logging/logging.go @@ -16,7 +16,7 @@ var ( Log Logger ) -func InitLogger(appConfig *config.AppConfig) { +func Init(appConfig *config.AppConfig) { lj := &lumberjack.Logger{ Filename: filepath.Join(appConfig.LogDir, appConfig.LogFile), diff --git a/main.go b/main.go index 98a25b5..f7ee39e 100644 --- a/main.go +++ b/main.go @@ -34,7 +34,7 @@ func main() { log.Fatal(err) } - logging.InitLogger(appConfig) + logging.Init(appConfig) err = startBot()