lib/lumber/lumber.rb in lumber-0.13.5 vs lib/lumber/lumber.rb in lumber-1.0.0

- old
+ new

@@ -63,11 +63,11 @@ if defined?(RAILS_DEFAULT_LOGGER) Object.send(:remove_const, :RAILS_DEFAULT_LOGGER) end Object.const_set('RAILS_DEFAULT_LOGGER', Log4r::Logger[BASE_LOGGER]) - @@registered_loggers = {} + self.registered_loggers.clear self.register_inheritance_handler() if opts[:monitor_store] # Setting to Rails.cache handled by a post initialize_cache rails initializer # since Rails.cache is not available when lumber is initialized @@ -78,10 +78,14 @@ def self.find_or_create_logger(fullname) Log4r::Logger[fullname] || Log4r::Logger.new(fullname) end + def self.registered_loggers + @registered_loggers ||= {} + end + # Makes :logger exist independently for subclasses and sets that logger # to one that inherits from base_class for each subclass as it is created. # This allows you to have a finer level of control over logging, for example, # put just a single class, or hierarchy of classes, into debug log level # @@ -94,11 +98,11 @@ # put into debug log mode in production (see {log4r docs}[http://log4r.sourceforge.net/manual.html]), and log # output will include "<class_name>" on every log from this class # so that you can tell where a log statement came from # def self.setup_logger_hierarchy(class_name, class_logger_fullname) - @@registered_loggers[class_name] = class_logger_fullname + Lumber.registered_loggers[class_name] = class_logger_fullname begin clazz = class_name.constantize # ActiveSupport 3.2 introduced class_attribute, which is supposed to be used instead of class_inheritable_accessor if available @@ -140,11 +144,11 @@ def inherited_with_lumber_log4r(subclass) inherited_without_lumber_log4r(subclass) # if the new class is in the list that were registered directly, # then create their logger attribute directly, otherwise derive it - logger_name = @@registered_loggers[subclass.name] + logger_name = Lumber.registered_loggers[subclass.name] if logger_name Lumber.add_lumber_logger(subclass, logger_name) else Lumber.derive_lumber_logger(subclass) end @@ -188,10 +192,10 @@ # that was registered, and use that logger as the parent for the # logger of the new class parent = clazz.superclass while ! parent.nil? parent_logger_name = (parent.respond_to?(:logger) && parent.logger.respond_to?(:fullname)) ? parent.logger.fullname : '' - parent_is_registered = @@registered_loggers.values.find {|v| parent_logger_name.index(v) == 0} + parent_is_registered = Lumber.registered_loggers.values.find {|v| parent_logger_name.index(v) == 0} if parent_is_registered && parent.method_defined?(:logger=) fullname = "#{parent_logger_name}::#{clazz.name.nil? ? 'anonymous' : clazz.name.split('::').last}" clazz.logger = Lumber.find_or_create_logger(fullname) break end \ No newline at end of file