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
|