diff options
Diffstat (limited to 'pkg/log')
| -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 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)) + } +} |
