package logs import ( "github.com/lmittmann/tint" "log/slog" "os" "platform/pkg/env" ) func Init() { var writer = os.Stdout var timeFormat = "2006-01-02 15:04:05" var handler slog.Handler switch env.RunMode { case "debug": handler = tint.NewHandler(writer, &tint.Options{ AddSource: true, Level: env.LogLevel, TimeFormat: timeFormat, ReplaceAttr: func(_ []string, attr slog.Attr) slog.Attr { err, ok := attr.Value.Any().(error) if ok { return tint.Err(err) } return attr }, }) case "production": handler = slog.NewJSONHandler(writer, &slog.HandlerOptions{ AddSource: false, Level: env.LogLevel, ReplaceAttr: func(_ []string, a slog.Attr) slog.Attr { if a.Key == "time" { return slog.String("time", a.Value.Time().Format(timeFormat)) } return a }, }) } slog.SetDefault(slog.New(handler)) }