module SBF::Client::DefaultLogger

Public Class Methods

instance(default_stream = STDOUT) click to toggle source
# File lib/stbaldricks/default_logger.rb, line 6
def self.instance(default_stream = STDOUT)
  formatter = proc { |severity, datetime, _, msg|
    # ruby logger docs suggested this method for escaping messages since messages may contain user input
    # and are not escaped by default.
    #
    # I am allowing newlines, however, for formatting purposes
    "\n#{datetime}: #{severity} - #{msg.to_s.dump.gsub('\\n', "\n")}\n"
  }

  logger = ::Logger.new(default_stream)

  logger.formatter = formatter
  logger.level = ::Logger::DEBUG
  logger.level = ENV['SBF_CLIENT_LOG_LEVEL'] || ::Logger::DEBUG
  logger
end