Sha256: b3496b5bbf3bdbdd040abcf7c1d3bb4a70ccf3431950cd3d14162cc04b679a54

Contents?: true

Size: 883 Bytes

Versions: 4

Compression:

Stored size: 883 Bytes

Contents

require 'logger'

module Concurrent
  module Concern

    # Include where logging is needed
    #
    # @!visibility private
    module Logging
      include Logger::Severity

      # Logs through {Configuration#logger}, it can be overridden by setting @logger
      # @param [Integer] level one of Logger::Severity constants
      # @param [String] progname e.g. a path of an Actor
      # @param [String, nil] message when nil block is used to generate the message
      # @yieldreturn [String] a message
      def log(level, progname, message = nil, &block)
        (@logger || Concurrent.global_logger).call level, progname, message, &block
      rescue => error
        $stderr.puts "`Concurrent.configuration.logger` failed to log #{[level, progname, message, block]}\n" +
          "#{error.message} (#{error.class})\n#{error.backtrace.join "\n"}"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
concurrent-ruby-0.9.0.pre3-java lib/concurrent/concern/logging.rb
concurrent-ruby-0.9.0.pre3 lib/concurrent/concern/logging.rb
concurrent-ruby-0.9.0.pre2 lib/concurrent/concern/logging.rb
concurrent-ruby-0.9.0.pre2-java lib/concurrent/concern/logging.rb