class ServerEngine::DaemonLogger

Constants

SEVERITY_FORMATS_

Public Class Methods

new(logdev, config={}) click to toggle source
Calls superclass method
# File lib/serverengine/daemon_logger.rb, line 32
def initialize(logdev, config={})
  @rotate_age = config[:log_rotate_age] || 5
  @rotate_size = config[:log_rotate_size] || 1048576
  @file_dev = nil

  super(nil)

  self.level = config[:log_level] || 'debug'
  self.logdev = logdev
end

Public Instance Methods

add(severity, message = nil, progname = nil) { || ... } click to toggle source

override add method

# File lib/serverengine/daemon_logger.rb, line 65
def add(severity, message = nil, progname = nil, &block)
  if severity < @level
    return true
  end
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = nil
    end
  end
  progname ||= @progname
  self << format_message(SEVERITY_FORMATS_[severity+1], Time.now, progname, message)
  true
end
close() click to toggle source
# File lib/serverengine/daemon_logger.rb, line 128
def close
  @file_dev.close if @file_dev
  nil
end
level=(expr) click to toggle source
Calls superclass method
# File lib/serverengine/daemon_logger.rb, line 90
def level=(expr)
  case expr.to_s
  when 'fatal', FATAL.to_s
    e = FATAL
  when 'error', ERROR.to_s
    e = ERROR
  when 'warn', WARN.to_s
    e = WARN
  when 'info', INFO.to_s
    e = INFO
  when 'debug', DEBUG.to_s
    e = DEBUG
  when 'trace', TRACE.to_s
    e = TRACE
  else
    raise ArgumentError, "invalid log level: #{expr}"
  end

  super(e)
end
logdev=(logdev) click to toggle source
# File lib/serverengine/daemon_logger.rb, line 43
def logdev=(logdev)
  # overwrites Logger's @logdev variable
  if logdev.respond_to?(:write) and logdev.respond_to?(:close)
    # IO
    @logdev = logdev
    @logdev.sync = true if @logdev.respond_to?(:sync=)
    if @file_dev
      old_file_dev = @file_dev
      @file_dev = nil
      old_file_dev.close
    end
  elsif !@file_dev || @file_dev.filename != logdev
    # update path string
    old_file_dev = @file_dev
    @file_dev = LogDevice.new(logdev, shift_age: @rotate_age, shift_size: @rotate_size)
    old_file_dev.close if old_file_dev
    @logdev = @file_dev
  end
  logdev
end
reopen() click to toggle source
# File lib/serverengine/daemon_logger.rb, line 118
def reopen
  begin
    reopen!
    return true
  rescue
    # TODO log?
    return false
  end
end
reopen!() click to toggle source
# File lib/serverengine/daemon_logger.rb, line 113
def reopen!
  @file_dev.reopen! if @file_dev
  nil
end
trace?() click to toggle source
# File lib/serverengine/daemon_logger.rb, line 111
def trace?; @level <= TRACE; end