class Cinch::Logger

This is the base logger class from which all loggers have to inherit.

@version 2.0.0

Constants

LevelOrder

@private

Attributes

level[RW]

@return [Array<:debug, :log, :info, :warn, :error, :fatal>]

The minimum level of events to log
mutex[R]

@return [Mutex] @api private

output[R]

@return [IO] @api private

Public Class Methods

new(output, level: :debug) click to toggle source

@param [IO] output The I/O object to write log data to

# File lib/cinch/logger.rb, line 25
def initialize(output, level: :debug)
  @output = output
  @mutex  = Mutex.new
  @level  = level
end

Public Instance Methods

debug(message) click to toggle source

Logs a debugging message.

@param [String] message @return [void] @version 2.0.0

# File lib/cinch/logger.rb, line 36
def debug(message)
  log(message, :debug)
end
error(message) click to toggle source

Logs an error message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 45
def error(message)
  log(message, :error)
end
exception(e) click to toggle source

Logs an exception.

@param [Exception] e @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 99
def exception(e)
  log(e.message, :exception, :error)
end
fatal(message) click to toggle source

Logs a fatal message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 54
def fatal(message)
  log(message, :fatal)
end
incoming(message) click to toggle source

Logs an incoming IRC message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 81
def incoming(message)
  log(message, :incoming, :log)
end
info(message) click to toggle source

Logs an info message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 63
def info(message)
  log(message, :info)
end
log(messages, event = :debug, level = event) click to toggle source

Logs a message.

@param [String, Array] messages The message(s) to log @param [:debug, :incoming, :outgoing, :info, :warn,

:exception, :error, :fatal] event The kind of event that
triggered the message

@param [:debug, :info, :warn, :error, :fatal] level The level of the message @return [void] @version 2.0.0

# File lib/cinch/logger.rb, line 112
def log(messages, event = :debug, level = event)
  return unless will_log?(level)

  @mutex.synchronize do
    Array(messages).each do |message|
      message = format_general(message)
      message = format_message(message, event)

      next if message.nil?

      @output.puts message.encode("locale", invalid: :replace, undef: :replace)
    end
  end
end
outgoing(message) click to toggle source

Logs an outgoing IRC message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 90
def outgoing(message)
  log(message, :outgoing, :log)
end
warn(message) click to toggle source

Logs a warning message.

@param [String] message @return [void] @since 2.0.0

# File lib/cinch/logger.rb, line 72
def warn(message)
  log(message, :warn)
end
will_log?(level) click to toggle source

@param [:debug, :info, :warn, :error, :fatal] level @return [Boolean] Whether the currently set logging level will

allow the passed in level to be logged

@since 2.0.0

# File lib/cinch/logger.rb, line 131
def will_log?(level)
  LevelOrder.index(level) >= LevelOrder.index(@level)
end

Private Instance Methods

format_debug(message) click to toggle source
# File lib/cinch/logger.rb, line 145
def format_debug(message)
  message
end
format_error(message) click to toggle source
# File lib/cinch/logger.rb, line 149
def format_error(message)
  message
end
format_exception(message) click to toggle source
# File lib/cinch/logger.rb, line 169
def format_exception(message)
  message
end
format_general(message) click to toggle source
# File lib/cinch/logger.rb, line 141
def format_general(message)
  message
end
format_incoming(message) click to toggle source
# File lib/cinch/logger.rb, line 161
def format_incoming(message)
  message
end
format_info(message) click to toggle source
# File lib/cinch/logger.rb, line 153
def format_info(message)
  message
end
format_message(message, level) click to toggle source
# File lib/cinch/logger.rb, line 137
def format_message(message, level)
  __send__ "format_#{level}", message
end
format_outgoing(message) click to toggle source
# File lib/cinch/logger.rb, line 165
def format_outgoing(message)
  message
end
format_warn(message) click to toggle source
# File lib/cinch/logger.rb, line 157
def format_warn(message)
  message
end