class MongodbLogger::Base
Public Class Methods
included(base)
click to toggle source
# File lib/mongodb_logger.rb, line 15 def self.included(base) base.class_eval do if defined?(around_action) around_action :enable_mongodb_logger else around_filter :enable_mongodb_logger end end end
Public Instance Methods
enable_mongodb_logger() { || ... }
click to toggle source
# File lib/mongodb_logger.rb, line 25 def enable_mongodb_logger return yield unless Rails.logger.respond_to?(:mongoize) f_session = (request.respond_to?(:session) ? request.session : session) Rails.logger.mongoize({ method: request.method, action: action_name, controller: controller_name, path: request.path, url: request.url, params: (request.respond_to?(:filtered_parameters) ? request.filtered_parameters : params), session: mongo_fix_session_keys(f_session), ip: request.remote_ip }) { yield } end
mongo_fix_session_keys(session = {})
click to toggle source
session keys can be with dots. It is invalid keys for BSON
# File lib/mongodb_logger.rb, line 40 def mongo_fix_session_keys(session = {}) new_session = Hash.new session.to_hash.each do |i, j| new_session[i.gsub(/\./i, "|")] = j.inspect end unless session.empty? new_session end