Module: Kolor::Logger

Defined in:
lib/kolor/internal/logger.rb

Overview

Kolor::Logger provides styled, leveled logging for terminal output.

It supports five log levels: :info, :warn, :error, :success, and :debug. Each level has a default ANSI style, which can be overridden per message.

Logging behavior is controlled by environment variables:

- `KOLOR_DEBUG` enables debug output
- `KOLOR_VERBOSE` enables info output

Warnings and errors are always shown unless suppressed via suppress!.

Examples:

Log a warning

Kolor::Logger.warn("Something went wrong")

Suppress warnings

Kolor::Logger.suppress!

Constant Summary collapse

DEBUG_ENV_KEY =
:KOLOR_DEBUG
INFO_ENV_KEY =
:KOLOR_VERBOSE
DEFAULT_STYLES =

Default ANSI styles for each log level

Returns:

  • (Hash{Symbol => Array<Symbol>})
{
  info:    [:cyan],
  warn:    [:yellow, :bold],
  error:   [:red, :bold],
  success: [:green],
  debug:   [:magenta]
}.freeze
LEVEL_TAGS =

Display tags for each log level

Returns:

{
  info:    'INFO',
  warn:    'WARN',
  error:   'ERROR',
  success: 'OK',
  debug:   'DEBUG'
}.freeze

Class Method Summary collapse

Class Method Details

.debug(message, styles = nil) ⇒ void

This method returns an undefined value.

Logs a debug-level message if debug mode is enabled

Parameters:

  • message (String)
  • styles (Array<Symbol>, nil) (defaults to: nil)


76
77
78
# File 'lib/kolor/internal/logger.rb', line 76

def debug(message, styles = nil)
  log(:debug, message, styles) if show_debug?
end

.enable!void

This method returns an undefined value.

Enables warnings and errors



109
# File 'lib/kolor/internal/logger.rb', line 109

def enable!   = @suppress_warnings = false

.error(message, styles = nil) ⇒ void

This method returns an undefined value.

Logs an error message

Parameters:

  • message (String)
  • styles (Array<Symbol>, nil) (defaults to: nil)


92
# File 'lib/kolor/internal/logger.rb', line 92

def error(message, styles = nil)   log(:error, message, styles)   end

.info(message, styles = nil) ⇒ void

This method returns an undefined value.

Logs an info-level message if verbose mode is enabled

Parameters:

  • message (String)
  • styles (Array<Symbol>, nil) (defaults to: nil)


67
68
69
# File 'lib/kolor/internal/logger.rb', line 67

def info(message, styles = nil)
  log(:info, message, styles) if show_info?
end

.show_debug?Boolean

Checks if debug output is enabled via ENV

Returns:

  • (Boolean)


55
# File 'lib/kolor/internal/logger.rb', line 55

def show_debug? = !ENV[DEBUG_ENV_KEY.to_s].nil?

.show_info?Boolean

Checks if info output is enabled via ENV

Returns:

  • (Boolean)


60
# File 'lib/kolor/internal/logger.rb', line 60

def show_info?  = !ENV[INFO_ENV_KEY.to_s].nil?

.success(message, styles = nil) ⇒ void

This method returns an undefined value.

Logs a success message

Parameters:

  • message (String)
  • styles (Array<Symbol>, nil) (defaults to: nil)


99
# File 'lib/kolor/internal/logger.rb', line 99

def success(message, styles = nil) log(:success, message, styles) end

.suppress!void

This method returns an undefined value.

Suppresses all warnings and errors



104
# File 'lib/kolor/internal/logger.rb', line 104

def suppress! = @suppress_warnings = true

.suppress_warnings?Boolean

Checks if warnings are currently suppressed

Returns:

  • (Boolean)


114
# File 'lib/kolor/internal/logger.rb', line 114

def suppress_warnings? = @suppress_warnings

.warn(message, styles = nil) ⇒ void

This method returns an undefined value.

Logs a warning message

Parameters:

  • message (String)
  • styles (Array<Symbol>, nil) (defaults to: nil)


85
# File 'lib/kolor/internal/logger.rb', line 85

def warn(message, styles = nil)    log(:warn, message, styles)    end