module Logging

Public Class Methods

make_logger(root_dir, log_file_name, log_dir_name: 'logs', log_level: Logger::INFO, rotation_count: 10, size_in_bytes: 10240000, reset: false) click to toggle source
# File lib/jungle_path/logging.rb, line 4
def self.make_logger(root_dir, log_file_name, log_dir_name: 'logs', log_level: Logger::INFO, rotation_count: 10, size_in_bytes: 10240000, reset: false)
  # pass in root_dir = ::File.dirname(__FILE__)
  #puts "root_dir.class: #{root_dir.class}: #{root_dir}."
  #puts "log_file_name.class: #{log_file_name.class}: #{log_file_name}."
  #puts "log_dir_name.class: #{log_dir_name.class}: #{log_dir_name}."
  logs_dir = ::File.join(root_dir, log_dir_name)

  ::Dir.mkdir(logs_dir) unless File.exists? logs_dir

  ::Logger.class_eval do
    alias_method :write, :<<
  end

  filename = ::File.join(logs_dir, log_file_name)
  File.delete(filename) if reset and File.exists?(filename)
  logger = Logger.new(filename, rotation_count, size_in_bytes)
  logger.level = log_level
  logger
end