class Nav::Logger::BaseLogger

Attributes

fluent_logger[R]

Public Instance Methods

debug(message, hash = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 29
def debug(message, hash = {})
  add ::Logger::DEBUG, message, hash.dup
end
error(message, hash = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 41
def error(message, hash = {})
  add ::Logger::ERROR, message, hash.dup
end
fatal(message, hash = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 45
def fatal(message, hash = {})
  add ::Logger::FATAL, message, hash.dup
end
info(message, hash = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 33
def info(message, hash = {})
  add ::Logger::INFO, message, hash.dup
end
level() click to toggle source
# File lib/nav/logger/base_logger.rb, line 6
def level
  return @level if defined? @level
  self.level = ENV["LOG_LEVEL"] || "info"
  @level
end
level=(new_level) click to toggle source
# File lib/nav/logger/base_logger.rb, line 20
def level=(new_level)
  if new_level.is_a? Integer
    @level = new_level
  else
    lookup = new_level.to_s.upcase
    @level = ::Logger::SEV_LABEL.index lookup
  end
end
level_name(lookup = level) click to toggle source
# File lib/nav/logger/base_logger.rb, line 12
def level_name(lookup = level)
  ::Logger::SEV_LABEL[lookup]
end
level_symbol() click to toggle source
# File lib/nav/logger/base_logger.rb, line 16
def level_symbol
  level_name.downcase.to_sym
end
log_tag(secondary_tag) click to toggle source
# File lib/nav/logger/base_logger.rb, line 54
def log_tag(secondary_tag)
  [app_tag, secondary_tag.downcase].compact.join "."
end
post(tag, hash) click to toggle source
# File lib/nav/logger/base_logger.rb, line 49
def post(tag, hash)
  full_hash = generate_log_hash hash
  @fluent_logger.post tag, full_hash
end
warn(message, hash = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 37
def warn(message, hash = {})
  add ::Logger::WARN, message, hash.dup
end

Private Instance Methods

add(severity, message, hash) click to toggle source
# File lib/nav/logger/base_logger.rb, line 60
def add(severity, message, hash)
  severity = severity.nil? ? ::Logger::UNKNOWN : severity.to_i
  return true if severity < level

  severity_name = level_name severity

  hash[:level] = severity_name
  hash[:message] = message

  log_hash = generate_log_hash hash

  @fluent_logger.post log_tag(severity_name), log_hash
end
app_tag() click to toggle source
# File lib/nav/logger/base_logger.rb, line 74
def app_tag
  return @app_tag if defined? @app_tag
  @app_tag = defined?(::APP_PREFIX) ? ::APP_PREFIX.downcase : nil
end
environment() click to toggle source
# File lib/nav/logger/base_logger.rb, line 79
def environment
  @environment ||= ENV["RACK_ENV"] || ENV["APP_ENV"] || "development"
end
generate_log_hash(input = {}) click to toggle source
# File lib/nav/logger/base_logger.rb, line 87
def generate_log_hash(input = {})
  hash = input.merge RequestStore.store
  hash.merge! ts: Time.now.to_f,
              environment: environment,
              hostname: hostname,
              pid: pid
end
hostname() click to toggle source
# File lib/nav/logger/base_logger.rb, line 83
def hostname
  @hostname ||= Socket.gethostname
end
pid() click to toggle source
# File lib/nav/logger/base_logger.rb, line 95
def pid
  @pid ||= Process.pid
end