lib/lumber/lumber.rb in lumber-1.1.3 vs lib/lumber/lumber.rb in lumber-1.2.0
- old
+ new
@@ -139,18 +139,21 @@
# output will include "<class_name>" on every log from this class
# so that you can tell where a log statement came from
#
def setup_logger_hierarchy(class_name, class_logger_fullname)
Lumber::InheritanceRegistry.register_inheritance_handler
- Lumber::InheritanceRegistry[class_name] = class_logger_fullname
begin
clazz = class_name.constantize
clazz.send(:include, Lumber::LoggerSupport)
rescue NameError
- # The class hasn't been defined yet. No problem, we've registered
- # the logger for when the class is created.
+ # The class hasn't been defined yet. No problem, we register
+ # the logger for when the class is created below
end
+
+ # Don't register the class until after we see if it is already defined, that
+ # way LoggerSupport gets included _after_ class is defined and overrides logger
+ Lumber::InheritanceRegistry[class_name] = class_logger_fullname
end
# Helper to make it easier to log context through log4r.yml
def format_mdc()
ctx = Log4r::MDC.get_context.collect {|k, v| k.to_s + "=" + v.to_s }.join(" ")