require 'geoip' module AuditLog def geoip @@geoip ||= GeoIP.new(File.join(Rails.root, '/lib/GeoIPCity.dat')) end def auto_log rails_action = "#{ params[:controller] }##{ params[:action] }" rails_params = params.except(:controller, :action) details = { :logger => 'AuditLog', :action => rails_action, :ip_address => request.remote_ip, :geo_ip => geoip.city(request.remote_ip).to_h, :user_id => current_user&.id, :user_email => current_user&.email, :user_name => current_user&.name, :params => rails_params, :user_agent => request.user_agent } Rails.logger.info MultiJson.dump(details) end end