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