Sha256: bae6f7ea712073f8af78cca43b533ce365b34a640dc7ecff4351595311ff823a

Contents?: true

Size: 564 Bytes

Versions: 5

Compression:

Stored size: 564 Bytes

Contents

# Wrap the Logger object with convenience methods.
class CarrotRpc::TaggedLog
  attr_reader :logger, :tags

  def initialize(logger:, tags:)
    @logger = logger
    @tags = *tags
  end

  def level
    logger.level
  end

  def level=(level)
    logger.level = level
  end

  # Dyanmically define logger methods with a tagged reference. Makes filtering of logs possible.
  %i(debug info warn error fatal unknown).each do |level|
    define_method(level) do |msg = nil, &block|
      logger.tagged(tags) { logger.send(level, msg || block.call) }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
carrot_rpc-0.5.1 lib/carrot_rpc/tagged_log.rb
carrot_rpc-0.5.0 lib/carrot_rpc/tagged_log.rb
carrot_rpc-0.4.1 lib/carrot_rpc/tagged_log.rb
carrot_rpc-0.4.0 lib/carrot_rpc/tagged_log.rb
carrot_rpc-0.3.0 lib/carrot_rpc/tagged_log.rb