module Steep
def self.log_error(exn, message: "Unexpected error: #{exn.inspect}")
def self.log_error(exn, message: "Unexpected error: #{exn.inspect}") Steep.logger.error message exn.backtrace.each do |loc| Steep.logger.warn " #{loc}" end end
def self.log_output
def self.log_output @log_output end
def self.log_output=(output)
def self.log_output=(output) @log_output = output prev_level = @logger&.level @logger = new_logger(output, prev_level) end
def self.logger
def self.logger @logger end
def self.measure(message)
def self.measure(message) start = Time.now yield.tap do time = Time.now - start self.logger.info "#{message} took #{time} seconds" end end
def self.new_logger(output, prev_level)
def self.new_logger(output, prev_level) ActiveSupport::TaggedLogging.new(Logger.new(output)).tap do |logger| logger.push_tags "Steep #{VERSION}" logger.level = prev_level || Logger::WARN end end