Module: ClassLogger::ClassMethods

Defined in:
lib/class_logger.rb

Instance Method Summary collapse

Instance Method Details

#loggersObject



29
30
31
# File 'lib/class_logger.rb', line 29

def loggers
  @loggers ||= {}
end

#setup_logger(options) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/class_logger.rb', line 33

def setup_logger(options)
  interpolations = {
    :rails_root => (defined?(Rails) ? Rails.root : ''),
    :class_name => self.to_s.downcase
  }
  
  if i = options[:in]
    options[:file] = File.basename(i)
    options[:path] = File.dirname(i)
  end  

  file_path = File.join(options[:path], options[:file]).to_s % interpolations
  
  if (rotate = options[:rotate])
    _logger = ::Logger.new(file_path, rotate)
  else
    _logger = ::Logger.new(file_path, options[:keep], options[:max_size])
  end
  _logger.formatter = options[:formatter]
  _logger.level = options[:level]

  as = options[:as]
  self.loggers[as] = _logger
  
  define_method(as){ self.class.loggers[as] }
  (class << self; self; end).class_eval{ define_method(as){ loggers[as] }}
end