module HammerCLI::Logger

Constants

COLOR_LAYOUT
DEFAULT_LOG_DIR
NOCOLOR_LAYOUT

Public Class Methods

initialize_logger(logger) click to toggle source
# File lib/hammer_cli/logger.rb, line 53
def self.initialize_logger(logger)
  log_dir = File.expand_path(HammerCLI::Settings.get(:log_dir) || DEFAULT_LOG_DIR)
  begin
    FileUtils.mkdir_p(log_dir, :mode => 0750)
  rescue Errno::EACCES => e
    $stderr.puts _("No permissions to create log dir %s") % log_dir
  end

  filename = "#{log_dir}/hammer.log"
  begin
    logger.appenders = ::Logging.appenders.rolling_file('configure',
                                                        :filename => filename,
                                                        :layout   => NOCOLOR_LAYOUT,
                                                        :truncate => false,
                                                        :keep     => 5,
                                                        :size     => (HammerCLI::Settings.get(:log_size) || 1)*1024*1024) # 1MB
    # set owner and group (it's ignored if attribute is nil)
    FileUtils.chown HammerCLI::Settings.get(:log_owner), HammerCLI::Settings.get(:log_group), filename
  rescue ArgumentError => e
    $stderr.puts _("File %s not writeable, won't log anything to the file!") % filename
  end

  logger.level = HammerCLI::Settings.get(:log_level)
  logger
end