class Kafo::Logging

Constants

LOG_LEVELS

Public Class Methods

add_logger(name) click to toggle source
# File lib/kafo/logging.rb, line 88
def add_logger(name)
  ::Logging.logger[name]
end
buffer() click to toggle source
# File lib/kafo/logging.rb, line 102
def buffer
  @buffer ||= []
end
buffering?() click to toggle source
# File lib/kafo/logging.rb, line 106
def buffering?
  root_logger.appenders.empty?
end
dump_buffer() click to toggle source
# File lib/kafo/logging.rb, line 118
def dump_buffer
  @buffer.each do |log|
    ::Logging.logger[log[0]].send(log[1], *([log[2]].flatten(2)), &log[3])
  end
  @buffer.clear
end
dump_needed?() click to toggle source
# File lib/kafo/logging.rb, line 110
def dump_needed?
  !buffer.empty?
end
layout(color: false) click to toggle source
# File lib/kafo/logging.rb, line 80
def layout(color: false)
  ::Logging::Layouts::Pattern.new(
    pattern: "%d [%-6l] [%c] %m\n",
    color_scheme: color ? 'bright' : nil,
    date_pattern: '%Y-%m-%d %H:%M:%S'
  )
end
root_logger() click to toggle source
# File lib/kafo/logging.rb, line 15
def root_logger
  @root_logger ||= ::Logging.logger.root
end
set_color_scheme() click to toggle source
# File lib/kafo/logging.rb, line 62
def set_color_scheme
  ::Logging.color_scheme(
    'bright',
    :levels => {
      :info => :cyan,
      :notice => :green,
      :warn  => :yellow,
      :error => :red,
      :fatal => [:white, :on_red]
    },
    :date   => :blue,
    :logger => :cyan,
    :line   => :yellow,
    :file   => :yellow,
    :method => :yellow
  )
end
setup(verbose: false) click to toggle source
# File lib/kafo/logging.rb, line 19
def setup(verbose: false)
  set_color_scheme

  level = KafoConfigure.config.app[:log_level]

  setup_file_logging(
    level,
    KafoConfigure.config.app[:log_dir],
    KafoConfigure.config.app[:log_owner],
    KafoConfigure.config.app[:log_group]
  )
  setup_verbose(level: KafoConfigure.config.app[:verbose_log_level] || level) if verbose
end
setup_file_logging(log_level, log_dir, log_owner, log_group) click to toggle source
# File lib/kafo/logging.rb, line 33
def setup_file_logging(log_level, log_dir, log_owner, log_group)
  filename = KafoConfigure.config.log_file

  begin
    FileUtils.mkdir_p(log_dir, :mode => 0750)
  rescue Errno::EACCES
    puts "No permissions to create log dir #{log_dir}"
  end

  begin
    root_logger.appenders = ::Logging.appenders.rolling_file(
      'configure',
      level: log_level,
      filename: filename,
      layout: layout(color: false),
      truncate: true,
      roll_by: 'date'
    )

    FileUtils.chown(
      log_owner,
      log_group,
      filename
    )
  rescue ArgumentError
    puts "File #{filename} not writeable, won't log anything to file!"
  end
end
setup_verbose(level: :notice) click to toggle source
# File lib/kafo/logging.rb, line 92
def setup_verbose(level: :notice)
  root_logger.add_appenders(
    ::Logging.appenders.stdout(
      'verbose',
      layout: layout(color: KafoConfigure.use_colors?),
      level: level
    )
  )
end
to_buffer(*args) click to toggle source
# File lib/kafo/logging.rb, line 114
def to_buffer(*args)
  buffer << args
end