From 3faa19c3aeae15070f2e143b031daaddfe296735 Mon Sep 17 00:00:00 2001 From: mo khan Date: Thu, 27 Mar 2025 11:47:58 -0600 Subject: feat: start to add structured logging --- pkg/log/init.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 pkg/log/init.go (limited to 'pkg/log') 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)) + } +} -- cgit v1.2.3