lib/sapience/base.rb in sapience-1.0.15 vs lib/sapience/base.rb in sapience-2.0.0

- old
+ new

@@ -1,10 +1,11 @@ module Sapience # rubocop:disable ClassLength class Base # Class name to be logged attr_accessor :name, :filter + include Sapience::LogMethods # Set the logging level for this logger # # Note: This level is only for this particular instance. It does not override # the log level in any logging instance or the default log level @@ -21,10 +22,11 @@ # default log level def level @level || Sapience.config.default_level end + # TODO: Move this to logger.rb? # Implement the log level calls # logger.debug(message, hash|exception=nil, &block) # # Implement the log level query # logger.debug? @@ -64,55 +66,11 @@ # logger.info("Request received", user: "joe", duration: 100) # # # Log an exception # logger.info("Parsing received XML", exc) # - Sapience::LEVELS.each_with_index do |level, index| - class_eval <<-EOT, __FILE__, __LINE__ + 1 - def #{level}(message=nil, payload=nil, exception=nil, &block) - if level_index <= #{index} - log_internal(:#{level}, #{index}, message, payload, exception, &block) - true - else - false - end - end - def #{level}? - level_index <= #{index} - end - - def measure_#{level}(message, params = {}, &block) - if level_index <= #{index} - measure_internal(:#{level}, #{index}, message, params, &block) - else - block.call(params) if block - end - end - - def benchmark_#{level}(message, params = {}, &block) - if level_index <= #{index} - measure_internal(:#{level}, #{index}, message, params, &block) - else - block.call(params) if block - end - end - EOT - end - - # Dynamically supply the log level with every measurement call - def measure(level, message, params = {}, &block) - index = Sapience.config.level_to_index(level) - if level_index <= index - measure_internal(level, index, message, params, &block) - else - block.call(params) if block - end - end - - alias_method :benchmark, :measure - # :nodoc: def tagged(*tags, &block) Sapience.tagged(*tags, &block) end @@ -257,9 +215,10 @@ def should_log?(log) # Ensure minimum log level is met, and check filter (level_index <= (log.level_index || 0)) && include_message?(log) end + # TODO: Move this to logger.rb? # Log message at the specified level # rubocop:disable AbcSize, PerceivedComplexity, CyclomaticComplexity, LineLength def log_internal(level, index, message = nil, payload = nil, exception = nil) # Exception being logged? if exception.nil? && payload.nil? && message.respond_to?(:backtrace) && message.respond_to?(:message)