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