package logs import ( "log/slog" "os" "platform/pkg/env" "github.com/lmittmann/tint" ) func Init() { var writer = os.Stdout var timeFormat = "2006-01-02 15:04:05" var handler slog.Handler switch env.RunMode { case env.RunModeDev: handler = tint.NewHandler(writer, &tint.Options{ Level: env.LogLevel, TimeFormat: timeFormat, ReplaceAttr: func(_ []string, attr slog.Attr) slog.Attr { switch v := attr.Value.Any().(type) { case error: return tint.Err(v) } return attr }, }) case env.RunModeProd: handler = slog.NewJSONHandler(writer, &slog.HandlerOptions{ 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)) }