summaryrefslogtreecommitdiff
path: root/pkg/log/init.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-03-27 11:47:58 -0600
committermo khan <mo@mokhan.ca>2025-03-27 11:47:58 -0600
commit3faa19c3aeae15070f2e143b031daaddfe296735 (patch)
treedc86e49908920c10479b9e9905c58c0c44e2cee6 /pkg/log/init.go
parentb08580ff78708519f0594a62531cf6ce45559265 (diff)
feat: start to add structured logging
Diffstat (limited to 'pkg/log/init.go')
-rw-r--r--pkg/log/init.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/log/init.go b/pkg/log/init.go
new file mode 100644
index 00000000..43ec5ab4
--- /dev/null
+++ b/pkg/log/init.go
@@ -0,0 +1,29 @@
+package log
+
+import (
+ "log"
+ "log/slog"
+ "net/http"
+ "os"
+
+ sloghttp "github.com/samber/slog-http"
+ "github.com/xlgmokha/x/pkg/env"
+)
+
+var Logger *slog.Logger
+var Default *log.Logger
+var Handler slog.Handler
+
+func init() {
+ Handler = slog.NewJSONHandler(os.Stdout, nil)
+ Logger = slog.New(Handler).With("env", env.Fetch("APP_ENV", "development"))
+ Default = slog.NewLogLogger(Handler, slog.LevelInfo)
+}
+
+type Fields map[string]interface{}
+
+func WithFields(r *http.Request, fields Fields) {
+ for key, value := range fields {
+ sloghttp.AddCustomAttributes(r, slog.Any(key, value))
+ }
+}