Module: Concurrent::Logging

Includes:
Logger::Severity
Included in:
Concurrent, Actor::Core, Agent, RubyExecutor, SerializedExecution
Defined in:
lib/concurrent/logging.rb

Overview

Include where logging is needed

Instance Method Summary collapse

Instance Method Details

#log(level, progname, message = nil, &block) ⇒ Object

Logs through Configuration#logger, it can be overridden by setting @logger

Parameters:

  • level (Integer)

    one of Logger::Severity constants

  • progname (String)

    e.g. a path of an Actor

  • message (String, nil) (defaults to: nil)

    when nil block is used to generate the message

Yield Returns:

  • (String)

    a message



13
14
15
16
17
18
# File 'lib/concurrent/logging.rb', line 13

def log(level, progname, message = nil, &block)
  (@logger || Concurrent.configuration.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