class MojoLogger::Appender

Constants

ACCEPTABLE_LOG_LEVELS

Attributes

file[R]
level[R]
max_backup_index[RW]
max_file_size[RW]
name[R]
pattern[RW]

Public Class Methods

new(name, opts={}) click to toggle source
# File lib/mojo_logger/appender.rb, line 15
def initialize(name, opts={})
  @name = name
  set_defaults(opts)
end

Public Instance Methods

file=(file) click to toggle source
# File lib/mojo_logger/appender.rb, line 26
def file=(file)
  @type = :file
  @file = file #File.expand_path(file)
end
generate_properties_string() click to toggle source
# File lib/mojo_logger/appender.rb, line 31
def generate_properties_string
  properties = generate_generic_properties
  properties << generate_file_properties if @file
  properties
end
level=(lvl) click to toggle source
# File lib/mojo_logger/appender.rb, line 20
def level=(lvl)
  l = lvl.to_s.upcase
  raise "InvalidLogLevel" unless valid_log_level?(l)
  @level = l
end

Private Instance Methods

generate_file_properties() click to toggle source
# File lib/mojo_logger/appender.rb, line 69
def generate_file_properties
  properties = "#{property_header}.file=#{@file}\n"
  properties << "#{property_header}.MaxFileSize=#{@max_file_size}\n"
  properties << "#{property_header}.MaxBackupIndex=#{@max_backup_index}\n"
  properties
end
generate_generic_properties() click to toggle source
# File lib/mojo_logger/appender.rb, line 61
def generate_generic_properties
  properties = "#{property_header}=#{log4j_type}\n"
  properties << "#{property_header}.layout=org.apache.log4j.PatternLayout\n"
  properties << "#{property_header}.layout.ConversionPattern=#{@pattern}\n"
  properties << "#{property_header}.Threshold=#{@level}\n" if @level
  properties
end
log4j_type() click to toggle source
# File lib/mojo_logger/appender.rb, line 76
def log4j_type
  if @type == :file
    "org.apache.log4j.RollingFileAppender"
  else
    "org.apache.log4j.ConsoleAppender"
  end
end
property_header() click to toggle source
# File lib/mojo_logger/appender.rb, line 57
def property_header
  "log4j.appender.#{@name}"
end
set_defaults(opts={}) click to toggle source
# File lib/mojo_logger/appender.rb, line 47
def set_defaults(opts={})
  @type = :console
  @max_file_size    = opts[:max_file_size]    || '10MB'
  @max_backup_index = opts[:max_backup_index] || '10'
  @pattern          = opts[:pattern]          || '%m %n'

  self.level=(opts[:level]) if opts[:level]
  self.file=(opts[:file]) if opts[:file]
end
valid_log_level?(lvl) click to toggle source
# File lib/mojo_logger/appender.rb, line 43
def valid_log_level?(lvl)
  ACCEPTABLE_LOG_LEVELS.include?(lvl)
end