summaryrefslogtreecommitdiff
path: root/pkg/log
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/log')
-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 0000000..43ec5ab
--- /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))
+ }
+}