Websites/app/logical/web_logger.rb
2024-05-02 22:04:43 -05:00

28 lines
826 B
Ruby

# frozen_string_literal: true
class WebLogger
def self.log_exception(exception, expected: false, **params)
if expected
Rails.logger.info("#{exception.class}: #{exception.message}")
else
backtrace = Rails.backtrace_cleaner.clean(exception.backtrace).join("\n")
Rails.logger.error("#{exception.class}: #{exception.message}\n#{backtrace}")
::NewRelic::Agent.notice_error(exception, expected: expected, custom_params: params) if defined?(::NewRelic)
end
end
def self.initialize(request)
add_attributes(
"request.ip" => request.ip,
"request.domain" => request.params[:domain],
"request.path" => request.params[:path],
)
end
def self.add_attributes(**)
return unless defined?(::NewRelic)
::NewRelic::Agent.add_custom_attributes(**)
end
end