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

{
  info:    [:cyan],
  warn:    [:yellow, :bold],
  error:   [:red, :bold],
  success: [:green],
  debug:   [:magenta]
}.freeze
LEVEL_TAGS =

Display tags for each log level

{
  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



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



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



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



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



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



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



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



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

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