diff options
| author | mo khan <mo@mokhan.ca> | 2025-03-27 11:47:58 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-03-27 11:47:58 -0600 |
| commit | 3faa19c3aeae15070f2e143b031daaddfe296735 (patch) | |
| tree | dc86e49908920c10479b9e9905c58c0c44e2cee6 /pkg/log/init.go | |
| parent | b08580ff78708519f0594a62531cf6ce45559265 (diff) | |
feat: start to add structured logging
Diffstat (limited to 'pkg/log/init.go')
| -rw-r--r-- | pkg/log/init.go | 29 |
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)) + } +} |
