class Lorekeeper::FastLogger

Very simple, very fast logger

Constants

LOGGING_METHODS
METHOD_SEVERITY_MAP
SEVERITY_NAMES_MAP

Attributes

formatter[RW]
level[RW]

Public Class Methods

new(file) click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 18
def initialize(file)
  @level = DEBUG
  @iodevice = LogDevice.new(file)
  @file = file # We only keep this so we can inspect where we are sending the logs
end

Public Instance Methods

add(severity, message_param = nil, progname = nil, &block) click to toggle source

This is part of the standard Logger API, we need this to be compatible

# File lib/lorekeeper/fast_logger.rb, line 57
def add(severity, message_param = nil, progname = nil, &block)
  return true if severity < @level
  message = message_param || (block && block.call) || progname
  log_data(severity, message.freeze)
end
debug?() click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 12
def debug?; level <= DEBUG; end
error?() click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 15
def error?; level <= ERROR; end
fatal?() click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 16
def fatal?; level <= FATAL; end
info?() click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 13
def info?; level <= INFO; end
log_data(_severity, message) click to toggle source

inherited classes probably want to reimplement this

# File lib/lorekeeper/fast_logger.rb, line 77
def log_data(_severity, message)
  @iodevice.write(message)
end
silence() { || ... } click to toggle source

activerecord-session_store v2 is now simply calling silence instead of silence_logger

# File lib/lorekeeper/fast_logger.rb, line 72
def silence(&block)
  yield if block_given?
end
silence_logger() { || ... } click to toggle source

Some gems like to add this method. For instance: github.com/rails/activerecord-session_store To avoid needing to monkey-patch Lorekeeper just to get this method, we are adding a simple non-functional version here.

# File lib/lorekeeper/fast_logger.rb, line 67
def silence_logger(&block)
  yield if block_given?
end
warn?() click to toggle source
# File lib/lorekeeper/fast_logger.rb, line 14
def warn?; level <= WARN; end