class Cinch::Logger
This is the base logger class from which all loggers have to inherit.
@version 2.0.0
Constants
- LevelOrder
@private
Attributes
@return [Array<:debug, :log, :info, :warn, :error, :fatal>]
The minimum level of events to log
@return [Mutex] @api private
@return [IO] @api private
Public Class Methods
@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
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
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
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
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
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
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
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
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
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
@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
# File lib/cinch/logger.rb, line 145 def format_debug(message) message end
# File lib/cinch/logger.rb, line 149 def format_error(message) message end
# File lib/cinch/logger.rb, line 169 def format_exception(message) message end
# File lib/cinch/logger.rb, line 141 def format_general(message) message end
# File lib/cinch/logger.rb, line 161 def format_incoming(message) message end
# File lib/cinch/logger.rb, line 153 def format_info(message) message end
# File lib/cinch/logger.rb, line 137 def format_message(message, level) __send__ "format_#{level}", message end
# File lib/cinch/logger.rb, line 165 def format_outgoing(message) message end
# File lib/cinch/logger.rb, line 157 def format_warn(message) message end