lib/lumber/lumber.rb in lumber-0.10.2 vs lib/lumber/lumber.rb in lumber-0.11.0
- old
+ new
@@ -32,24 +32,30 @@
#
# * :root - defaults to RAILS_ROOT if defined
# * :env - defaults to RAILS_ENV if defined
# * :config_file - defaults to <root>}/config/log4r.yml
# * :log_file - defaults to <root>}/log/<env>.log
+ # * :monitor_enabled - defaults to true
+ # * :monitor_interval - defaults to 60
+ # * :monitor_store - defaults to Rails.cache if defined, memory otherwise, see Lumber::LevelUtil::MemoryCacheProvider for interface
#
# All config options get passed through to the log4r
# configurator for use in defining outputters
#
def self.init(opts = {})
opts[:root] ||= RAILS_ROOT.to_s if defined?(RAILS_ROOT)
opts[:env] ||= RAILS_ENV if defined?(RAILS_ENV)
opts[:config_file] ||= "#{opts[:root]}/config/log4r.yml"
opts[:log_file] ||= "#{opts[:root]}/log/#{opts[:env]}.log"
+ opts[:monitor_enabled] ||= true
+ opts[:monitor_interval] ||= 60
+
raise "Lumber.init missing one of :root, :env" unless opts[:root] && opts[:env]
cfg = Log4r::YamlConfigurator
opts.each do |k, v|
- cfg[k.to_s] = v
+ cfg[k.to_s] = v.to_s
end
cfg['hostname'] = Socket.gethostname
cfg.load_yaml_file(opts[:config_file])
@@ -59,9 +65,16 @@
end
Object.const_set('RAILS_DEFAULT_LOGGER', Log4r::Logger[BASE_LOGGER])
@@registered_loggers = {}
self.register_inheritance_handler()
+
+ if opts[:monitor_store]
+ LevelUtil.cache = opts[:monitor_store]
+ elsif defined?(RAILS_CACHE)
+ LevelUtil.cache = RAILS_CACHE
+ end
+ LevelUtil.start_monitor(opts[:monitor_interval]) if opts[:monitor_enabled]
end
def self.find_or_create_logger(fullname)
Log4r::Logger[fullname] || Log4r::Logger.new(fullname)
end
\ No newline at end of file