add start announcement

This commit is contained in:
Elijah Duffy
2026-01-28 17:52:05 -08:00
parent 974c3db329
commit 7fcb19ad49

View File

@@ -44,6 +44,9 @@ type AppLogOpts struct {
// for slog. Generally recommended to manage logger via app lifecycle
// instead of relying on globals.
SetDefault bool
// Disables announcement of log module w/ log level on app start.
DisableAnnouncement bool
}
// Module creates a new Module instance.
@@ -88,17 +91,29 @@ func setupLogger(lifecycle *app.Lifecycle, opts AppLogOpts) error {
return err
}
handlers = append(handlers, slog.NewJSONHandler(logfile, &slog.HandlerOptions{
fileHandler := slog.NewJSONHandler(logfile, &slog.HandlerOptions{
Level: opts.FileLevel,
}))
})
if !opts.DisableAnnouncement {
slog.New(fileHandler).Info("Logger initialized", "level", opts.FileLevel.String(), "output", opts.FileOutput)
}
handlers = append(handlers, fileHandler)
}
// If log output is specified, set up pretty-printed console logging
if opts.ConsoleOutput != nil {
handlers = append(handlers, tint.NewHandler(opts.ConsoleOutput, &tint.Options{
consoleHandler := tint.NewHandler(opts.ConsoleOutput, &tint.Options{
Level: opts.ConsoleLevel,
TimeFormat: time.Kitchen,
}))
})
if !opts.DisableAnnouncement {
slog.New(consoleHandler).Info("Logger initialized", "level", opts.ConsoleLevel.String())
}
handlers = append(handlers, consoleHandler)
}
logger := slog.New(slogmulti.Fanout(handlers...))