lib/betterlog/log.rb in betterlog-0.7.2 vs lib/betterlog/log.rb in betterlog-0.8.0

- old
+ new

@@ -10,11 +10,11 @@ class_attr_accessor :default_logger self.default_logger = Logger.new(STDERR) def logger - defined?(Rails) && Rails.logger || self.class.default_logger + defined?(Rails) && Rails.respond_to?(:logger) ? Rails.logger : ::Logger.new(STDERR) end # Logs a message on severity info. # # @param object this object is logged @@ -81,45 +81,48 @@ emit Log::Event.ify(object, severity: rest[:severity], rest: rest) end end # Logs a metric on severity debug, by default, this can be changed by passing - # the severity: keyword. + # the severity: keyword. +name+ is for example 'Donation' and +type+ + # 'Confirmation', and +value+ can be any value, but has to be somewhat + # consistent in terms of structure with +name/type+ to allow for correct + # evaluation. # - # @param metric the name of the recorded metric. + # @param name the name of the recorded metric. # @param type of the recorded metric. # @param value of the recorded metric. # @param **rest additional rest is logged as well. # @return [ Log ] this object itself. - def metric(metric:, type:, value:, **rest) + def metric(name:, type:, value:, **rest) protect do - event = build_metric(metric: metric, type: type, value: value, **rest) + event = build_metric(name: name, type: type, value: value, **rest) emit event end end # Logs a time measure on severity debug, by default, this can be changed by # passing the severity: keyword. # # If an error occurs during measurement details about it are added to the # metric event. # - # @param metric the name of the recorded metric. + # @param name the name of the recorded metric. # @param **rest additional rest is logged as well. # @param block the block around which the measure is teaken. # @return [ Log ] this object itself. - def measure(metric:, **rest, &block) + def measure(name:, **rest, &block) raise ArgumentError, 'must be called with a block' unless block_given? time_block { yield } rescue => error e = Log::Event.ify(error) rest |= e.as_hash.subhash(:error_class, :backtrace, :message) - rest[:message] = "#{rest[:message].inspect} while measuring metric #{metric}" + rest[:message] = "#{rest[:message].inspect} while measuring metric #{name}" raise error ensure protect do - event = build_metric(metric: metric, type: 'seconds', value: timed_duration, **rest) + event = build_metric(name: name, type: 'duration', value: timed_duration, **rest) emit event end end def context(data_hash) @@ -147,17 +150,17 @@ ) end self end - def build_metric(metric:, type:, value:, **rest) + def build_metric(name:, type:, value:, **rest) severity = rest.fetch(:severity, :debug) rest |= { - message: "a metric #{metric} of type #{type}", + message: "a metric #{name} of type #{type}", } Log::Event.ify( { - metric: metric, + name: name, type: type, value: value, } | rest, severity: severity )