Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Custom Symbol

Override the default emoji symbol per-event, per-logger, or globally:

// Per-event
clog.Info().Symbol("📦").Str("pkg", "clog").Msg("Installed")

// Per-logger (via sub-logger)
logger := clog.With().Symbol("🛡️").Str("component", "auth").Logger()
logger.Info().Msg("Ready")

// Global (changes defaults for all levels)
clog.SetSymbols(clog.LabelMap{
  clog.LevelInfo:  ">>",
  clog.LevelWarn:  "!!",
  clog.LevelError: "XX",
})

During animations, SetSymbol on the Update changes the icon mid-task:

update.SetSymbol("📡").Str("stage", "receiving").Send()

Symbol resolution order: event override > logger preset > default emoji for level.

Missing levels in SetSymbols fall back to the defaults. Use DefaultSymbols() to get a copy of the default symbol map.

Styling Symbols

Symbols can be any string - not just emojis. Use Styles.Symbols to apply a lipgloss style per level:

clog.SetStyles(&style.Config{
  Symbols: style.LevelMap{
    clog.LevelInfo:  new(lipgloss.NewStyle().Foreground(lipgloss.Color("2"))), // green
    clog.LevelWarn:  new(lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("3"))), // yellow
    clog.LevelError: new(lipgloss.NewStyle().Foreground(lipgloss.Color("1"))), // red
  },
})

Symbol styles also apply to spinner animation frames, so spinners inherit the color of their level.

Styles.Symbols is a LevelMap. Entries for levels not in the map render unstyled (the default).