module Turnstile::Logger::Provider

Attributes

enabled[RW]
logger[RW]

Public Instance Methods

disable() click to toggle source
# File lib/turnstile/logger/provider.rb, line 20
def disable
  self.enabled = false
  class << self
    self.send(:define_method, :log, proc { |_| })
    self.send(:define_method, :logging, proc { |_, &block| block.call })
  end
end
enable() click to toggle source
# File lib/turnstile/logger/provider.rb, line 11
def enable
  self.enabled = true
  class << self
    self.send(:define_method, :log, proc { |level = :info, msg| _log(level, msg) })
    self.send(:define_method, :logging, proc { |level = :info, msg, &block| _logging(level, msg, &block) })
  end
end
log(*) click to toggle source
# File lib/turnstile/logger/provider.rb, line 29
def log(*)
  # no op
end
logging(*) click to toggle source
# File lib/turnstile/logger/provider.rb, line 34
def logging(*)
  # No op
end

Private Instance Methods

_log(level = :info, msg) click to toggle source
# File lib/turnstile/logger/provider.rb, line 41
def _log(level = :info, msg)
  logger.send(level) do
    "#{sprintf('%-15s', Thread.current[:name] || 'thread-main')} | #{msg}"
  end
end
_logging(level = :info, *args) { || ... } click to toggle source
# File lib/turnstile/logger/provider.rb, line 48
def _logging(level = :info, *args, &_block)
  message = args.join(' ')

  log(level, message) unless block_given?
  return unless block_given?

  start = Time.now
  yield.tap do |result|
    elapsed_time = Time.now - start
    if result
      message += " #{result.to_s}"
    end
    log_elapsed(level, elapsed_time, message)
  end