class Pyer::Logger

Logger class

Constants

STRING

Attributes

level[RW]

Logging severity threshold (e.g. Logger::INFO).

Private Class Methods

new(logdev = nil, klass = nil) click to toggle source

Create an instance. outputs log messages on STDOUT, STDERR, a file or a StringIO

# File lib/pyer/logger.rb, line 119
def initialize(logdev = nil, klass = nil)
  @level = DEBUG
  @logdev = $stdout
  @severity_label = COLOURED_LABELS
  @klass_name = ''
  @klass_name = klass.name unless klass.nil?
  return if logdev.nil?
  if logdev == STRING
    # no log device implies that messages are stored in a string
    @logdev = StringIO.new
    @severity_label = SEVERITY_LABELS
  else
    if logdev == STDOUT
      @logdev = $stdout
    else
      if logdev == STDERR
        @logdev = $stderr
      else
        # the default log device is a file name
        @logdev = File.new(logdev.to_s, 'a')
        @severity_label = SEVERITY_LABELS
      end
    end
  end
end

Private Instance Methods

add(severity, message, &block) click to toggle source

Log a message if the given severity is high enough.

# File lib/pyer/logger.rb, line 178
def add(severity, message, &block)
  return if @logdev.nil? || severity < @level
  message = '' if message.nil?
  message += block.call if block_given?
  @logdev.write(Formatter.new.string(@klass_name, @severity_label[severity], message))
end
close() click to toggle source

Close the logging device.

# File lib/pyer/logger.rb, line 150
def close
  @logdev.close if @logdev.class == File
end
debug(message = nil, &block) click to toggle source

Log a DEBUG message.

# File lib/pyer/logger.rb, line 155
def debug(message = nil, &block)
  add(DEBUG, message, &block)
end
debug?() click to toggle source

Returns true if the current severity level allows the printing of the message

# File lib/pyer/logger.rb, line 100
def debug?
  @level <= DEBUG
end
error(message = nil, &block) click to toggle source

Log an ERROR message.

# File lib/pyer/logger.rb, line 170
def error(message = nil, &block)
  add(ERROR, message, &block)
end
error?() click to toggle source
# File lib/pyer/logger.rb, line 112
def error?
  @level <= ERROR
end
info(message = nil, &block) click to toggle source

Log an INFO message.

# File lib/pyer/logger.rb, line 160
def info(message = nil, &block)
  add(INFO, message, &block)
end
info?() click to toggle source
# File lib/pyer/logger.rb, line 104
def info?
  @level <= INFO
end
string() click to toggle source
# File lib/pyer/logger.rb, line 145
def string
  @logdev.class == StringIO ? @logdev.string : ''
end
warn(message = nil, &block) click to toggle source

Log a WARN message.

# File lib/pyer/logger.rb, line 165
def warn(message = nil, &block)
  add(WARN, message, &block)
end
warn?() click to toggle source
# File lib/pyer/logger.rb, line 108
def warn?
  @level <= WARN
end