From 8d4cbdac90d172e81a87a65bbb679ec9404d7a2b Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sat, 4 May 2024 14:29:49 +0300 Subject: [PATCH] Add debug flag --- README.md | 2 ++ TODO.md | 2 +- flags.go | 2 ++ logger.go | 7 ++++++- main.go | 2 +- serve.go | 1 + 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d10186f..aae5703 100644 --- a/README.md +++ b/README.md @@ -73,4 +73,6 @@ If you for some reason decide to run plain executable instead of docker, it supp override password -port int override port +-debug + show debug log ``` \ No newline at end of file diff --git a/TODO.md b/TODO.md index 2148394..c966e04 100644 --- a/TODO.md +++ b/TODO.md @@ -8,6 +8,6 @@ List of things to add to this project * API revamp * Check export function for improvements * Customise log file -* More slog.Debug and a debug flag? +* More slog.Debug * Consider less clunky auth method * *Go* dependency-less? <-- this is a terrible idea \ No newline at end of file diff --git a/flags.go b/flags.go index 043dbdf..4d56b51 100644 --- a/flags.go +++ b/flags.go @@ -11,6 +11,7 @@ func FlagInit() { username := flag.String("user", "", "override username") password := flag.String("pass", "", "override password") port := flag.Int("port", 0, "override port") + debug := flag.Bool("debug", false, "debug logging") flag.Parse() if *config != "" { @@ -29,4 +30,5 @@ func FlagInit() { if *port != 0 { Cfg.Port = *port } + DebugMode = *debug } diff --git a/logger.go b/logger.go index 16576c6..7b5d043 100644 --- a/logger.go +++ b/logger.go @@ -9,6 +9,7 @@ import ( ) var LogFile = "config/log.txt" +var DebugMode = false // LogInit makes slog output to both stdout and a file if needed func LogInit() { @@ -26,6 +27,10 @@ func LogInit() { } // Make slog and chi use intended format - slog.SetDefault(slog.New(slog.NewTextHandler(w, nil))) + var opts *slog.HandlerOptions + if DebugMode { + opts = &slog.HandlerOptions{Level: slog.LevelDebug} + } + slog.SetDefault(slog.New(slog.NewTextHandler(w, opts))) middleware.DefaultLogger = middleware.RequestLogger(&middleware.DefaultLogFormatter{Logger: log.Default(), NoColor: true}) } diff --git a/main.go b/main.go index e306884..9b4926e 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main var Cfg = ConfigInit() func main() { - LogInit() FlagInit() + LogInit() Serve() } diff --git a/serve.go b/serve.go index 645edd4..d3f21a7 100644 --- a/serve.go +++ b/serve.go @@ -44,5 +44,6 @@ func Serve() { r.Handle("/public/*", http.StripPrefix("/public/", fs)) slog.Info("🌺 Website working", "port", Cfg.Port) + slog.Debug("Debug mode enabled") log.Fatal(http.ListenAndServe(":"+strconv.Itoa(Cfg.Port), r)) }