in fast-build-update-tool/internal/config/logger.go [67:90]
func (a *ApplicationLogger) initializeSlog(verbose bool) (err error) {
var handler slog.Handler
if verbose {
if a.logFile == nil {
// If we have verbose logs, use the default slog.TextHandler, and write everything to STDOUT, and a log file
a.logFile, err = os.OpenFile(filepath.Join(a.logsDir, logFileName), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
if err != nil {
return fmt.Errorf("error creating log file %w", err)
}
}
level := &slog.LevelVar{}
level.Set(slog.LevelDebug)
handler = slog.NewTextHandler(io.MultiWriter(a.logFile, os.Stdout), &slog.HandlerOptions{Level: level})
} else {
// Otherwise use the pretty logger at Warn level, and only log to STDOUT
pterm.DefaultLogger.Level = pterm.LogLevelWarn
handler = pterm.NewSlogHandler(&pterm.DefaultLogger)
}
a.Logger = slog.New(handler)
return nil
}