lib/ahoy/logger_silencer.rb in ahoy_matey-1.3.0 vs lib/ahoy/logger_silencer.rb in ahoy_matey-1.3.1
- old
+ new
@@ -5,31 +5,37 @@
require "active_support/core_ext/module/attribute_accessors"
require "active_support/concern"
module Ahoy
module LoggerSilencer
- def self.prepended(base)
- base.cattr_accessor :silencer
- base.silencer = true
+ extend ActiveSupport::Concern
+
+ included do
+ cattr_accessor :silencer
+ self.silencer = true
+ alias_method :level_without_threadsafety, :level
+ alias_method :level, :level_with_threadsafety
+ alias_method :add_without_threadsafety, :add
+ alias_method :add, :add_with_threadsafety
end
def thread_level
Thread.current[thread_hash_level_key]
end
def thread_level=(level)
Thread.current[thread_hash_level_key] = level
end
- def level
- thread_level || super
+ def level_with_threadsafety
+ thread_level || level_without_threadsafety
end
- def add(severity, message = nil, progname = nil, &block)
- if !defined?(@logdev) || @logdev.nil? || (severity || UNKNOWN) < level
+ def add_with_threadsafety(severity, message = nil, progname = nil, &block)
+ if (defined?(@logdev) && @logdev.nil?) || (severity || UNKNOWN) < level
true
else
- super
+ add_without_threadsafety(severity, message, progname, &block)
end
end
# Silences the logger for the duration of the block.
def silence_logger(temporary_level = Logger::ERROR)