Module: Collins::Util::Logging

Included in:
Collins::Util
Defined in:
lib/collins/logging.rb

Constant Summary collapse

DEFAULT_LOG_FORMAT =
"%Y-%m-%d %H:%M:%S.%L"

Instance Method Summary collapse

Instance Method Details

#get_logger(options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/collins/logging.rb', line 10

def get_logger options = {}
  return options[:logger] if options[:logger]
  trace = Collins::Option(options[:trace]).get_or_else(false)
  debug = Collins::Option(options[:debug]).get_or_else(false)
  progname = Collins::Option(options[:progname] || options[:program]).get_or_else('unknown')
  logfile = Collins::Option(options[:logfile]).get_or_else(STDOUT)
  logger = Logger.new(logfile)
  if trace then
    logger.level = Logger::TRACE
  elsif debug then
    logger.level = Logger::DEBUG
  else
    logger.level = Logger::INFO
  end
  logger.progname = File.basename(progname)
  logger.formatter = Proc.new do |severity, datetime, progname, message|
    date_s = datetime.strftime(Collins::Util::Logging::DEFAULT_LOG_FORMAT)
    "#{severity} [#{date_s}] #{progname}: #{message}\n"
  end
  logger
end