module Stash::Sword::LogUtils
Public Class Methods
create_default_logger(io, level)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 49 def self.create_default_logger(io, level) logger = Logger.new(io, 10, 1024 * 1024) logger.level = level logger.formatter = proc do |severity, datetime, progname, msg| "#{datetime.to_time.utc} #{severity} -#{progname}- #{msg}\n" end logger end
Public Instance Methods
default_logger()
click to toggle source
# File lib/stash/sword/log_utils.rb, line 45 def default_logger LogUtils.create_default_logger($stdout, level) end
hash_to_log_msg(hash)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 26 def hash_to_log_msg(hash) hash.map do |k, v| value = v.is_a?(Hash) ? v.map { |k2, v2| "\n\t#{k2}: #{v2}" }.join : v "#{k}: #{value}" end.join("\n") end
level()
click to toggle source
# File lib/stash/sword/log_utils.rb, line 33 def level # TODO: make this configurable @level ||= case ENV['RAILS_ENV'].to_s.downcase when 'test' Logger::DEBUG when 'development' Logger::INFO else Logger::WARN end end
log()
click to toggle source
# File lib/stash/sword/log_utils.rb, line 5 def log @log ||= default_logger end
log_error(e)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 9 def log_error(e) log.error(to_log_msg(e)) end
log_hash(hash)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 21 def log_hash(hash) msg = hash_to_log_msg(hash) log.debug(msg) end
to_log_msg(e)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 13 def to_log_msg(e) msg_lines = [] append_message(msg_lines, e) append_response(msg_lines, e) append_backtrace(msg_lines, e) msg_lines.join("\n") end
Private Instance Methods
append_backtrace(msg_lines, e)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 78 def append_backtrace(msg_lines, e) return unless e.respond_to?(:backtrace) && e.backtrace msg_lines.unshift(*e.backtrace) end
append_message(msg_lines, e)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 60 def append_message(msg_lines, e) msg_lines << if e.respond_to?(:message) && e.message "message: #{e.message}" else e.to_s end end
append_response(msg_lines, e)
click to toggle source
# File lib/stash/sword/log_utils.rb, line 68 def append_response(msg_lines, e) return unless e.respond_to?(:response) && e.response response = e.response msg_lines.unshift( "code: #{response.code}", 'headers:', hash_to_log_msg(response.headers), "body:\n#{response.body}" ) end