class Logger

:nodoc:
Adds the ‘around_level’ method to Logger.

def self.define_around_helper(level)

:nodoc:
Adds the 'around_level' method to Logger.
def self.define_around_helper(level)
  module_eval <<-end_eval, __FILE__, __LINE__ + 1
    def around_#{level}(before_message, after_message)  # def around_debug(before_message, after_message, &block)
      self.#{level}(before_message)                     #   self.debug(before_message)
      return_value = yield(self)                        #   return_value = yield(self)
      self.#{level}(after_message)                      #   self.debug(after_message)
      return_value                                      #   return_value
    end                                                 # end
  end_eval
end

def datetime_format

datetime formatting.
Get the logging datetime format. Returns nil if the formatter does not support
def datetime_format
  formatter.datetime_format if formatter.respond_to?(:datetime_format)
end

def datetime_format=(datetime_format)

does not respond to datetime_format=.
Logging date-time format (string passed to +strftime+). Ignored if the formatter
def datetime_format=(datetime_format)
  formatter.datetime_format = datetime_format if formatter.respond_to?(:datetime_format=)
end

def initialize(*args)

Overwrite initialize to set a default formatter.
def initialize(*args)
  old_initialize(*args)
  self.formatter = SimpleFormatter.new
end

def silence(temporary_level = Logger::ERROR)

Silences the logger for the duration of the block.
def silence(temporary_level = Logger::ERROR)
  if silencer
    begin
      old_logger_level, self.level = level, temporary_level
      yield self
    ensure
      self.level = old_logger_level
    end
  else
    yield self
  end
end