module EasyAppHelper::Logger::Initializer

Public Class Methods

build_logger() click to toggle source
# File lib/easy_app_helper/logger/initializer.rb, line 21
def self.build_logger
  log_device = File::NULL
  if EasyAppHelper.config[:debug]
    log_device = if EasyAppHelper.config[:'log-file']
                   if File.exists? EasyAppHelper.config[:'log-file']
                     if File.writable? EasyAppHelper.config[:'log-file']
                       EasyAppHelper.config[:'log-file']
                     else
                       STDERR.puts "WARNING: Log file '#{EasyAppHelper.config[:'log-file']}' is not writable. Switching to STDERR..."
                       EasyAppHelper.config[:'log-file'] = nil
                       STDERR
                     end
                   else
                     if File.writable? File.dirname(EasyAppHelper.config[:'log-file'])
                       EasyAppHelper.config[:'log-file']
                     else
                       STDERR.puts "WARNING: Cannot write log file in '#{File.dirname EasyAppHelper.config[:'log-file']}'. Switching to STDERR..."
                       EasyAppHelper.config[:'log-file'] = nil
                       STDERR
                     end
                   end
                 elsif EasyAppHelper.config[:'debug-on-err']
                   STDERR
                 else
                   STDOUT
                 end
  end
  setup_logger(::Logger.new log_device)
end
init_command_line_options() click to toggle source
# File lib/easy_app_helper/logger/initializer.rb, line 6
def self.init_command_line_options
  EasyAppHelper.config.add_command_line_section('Debug and logging options') do |slop|
    slop.on :debug, 'Run in debug mode.', argument: false
    slop.on :'debug-on-err', 'Run in debug mode with output to stderr.', argument: false
    slop.on :'log-level', "Log level from 0 to 5, default #{::Logger::Severity::WARN}.", argument: true, as: Integer
    slop.on :'log-file', 'File to log to.', argument: true, as: String
  end
end
setup_logger(logger) click to toggle source
# File lib/easy_app_helper/logger/initializer.rb, line 15
def self.setup_logger(logger)
  logger.level = EasyAppHelper.config[:'log-level'] ? EasyAppHelper.config[:'log-level'] : ::Logger::Severity::WARN
  logger.extend EasyAppHelper::Logger::Wrapper
  logger
end