class Sqreen::Logger

Wrapper class for sqreen logging

Constants

SEVERITY_TO_METHOD

Public Class Methods

new(desired_level, log_location, force_logger = nil) click to toggle source
# File lib/sqreen/logger.rb, line 20
def initialize(desired_level, log_location, force_logger = nil)
  if force_logger
    @logger = force_logger
  else
    init_logger_output(log_location)
  end
  init_log_level(desired_level)
  enforce_log_format(@logger)
  create_error_logger
end

Public Instance Methods

add(severity, msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 72
def add(severity, msg = nil, &block)
  send(SEVERITY_TO_METHOD[severity], msg, &block)
end
debug(msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 51
def debug(msg = nil, &block)
  @logger.debug(msg, &block)
end
debug?() click to toggle source
# File lib/sqreen/logger.rb, line 31
def debug?
  @logger.debug?
end
error(msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 63
def error(msg = nil, &block)
  @error_logger.error(msg, &block)
  @logger.error(msg, &block)
end
error?() click to toggle source
# File lib/sqreen/logger.rb, line 43
def error?
  @logger.error?
end
fatal?() click to toggle source
# File lib/sqreen/logger.rb, line 47
def fatal?
  @logger.fatal?
end
info(msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 55
def info(msg = nil, &block)
  @logger.info(msg, &block)
end
info?() click to toggle source
# File lib/sqreen/logger.rb, line 35
def info?
  @logger.info?
end
unknown(msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 68
def unknown(msg = nil, &block)
  @logger.unknown(msg, &block)
end
warn(msg = nil, &block) click to toggle source
# File lib/sqreen/logger.rb, line 59
def warn(msg = nil, &block)
  @logger.warn(msg, &block)
end
warn?() click to toggle source
# File lib/sqreen/logger.rb, line 39
def warn?
  @logger.warn?
end

Protected Instance Methods

create_error_logger() click to toggle source
# File lib/sqreen/logger.rb, line 100
def create_error_logger
  @error_logger = Kernel.const_defined?('MiniTest') ? NullLogger.instance : ::Logger.new(STDERR)
  enforce_log_format(@error_logger)
end
enforce_log_format(logger) click to toggle source
# File lib/sqreen/logger.rb, line 105
def enforce_log_format(logger)
  logger.formatter = Sqreen::FormatterWithTid.new
end
init_log_level(level) click to toggle source
# File lib/sqreen/logger.rb, line 92
def init_log_level(level)
  log_level = ::Logger.const_get(level)
  @logger.level = log_level
  Sqreen::PerformanceNotifications::Log.enable if level == 'DEBUG'
  return if level != 'DEBUG' && !Sqreen.config_get(:report_perf)
  Sqreen::PerformanceNotifications::LogPerformance.enable
end
init_logger_output(path) click to toggle source
# File lib/sqreen/logger.rb, line 78
def init_logger_output(path)
  path = File.expand_path(path)
  if File.writable?(path) || File.writable?(File.dirname(path))
    @logger = ::Logger.new(path)
  else
    @logger = ::Logger.new(STDOUT)
    @logger.info("Cannot access #{path} for writing. Defaulting to stdout")
  end
rescue StandardError => e
  @logger = ::Logger.new(STDOUT)
  @logger.error('Got error while trying to setting logger up, '\
                "falling back to stdout #{e.inspect}")
end