Sha256: 9b9c513f63c09d7f19601e88cc66768ccced3c7b46ab0699e0050ed77ad4349e
Contents?: true
Size: 1.42 KB
Versions: 4
Compression:
Stored size: 1.42 KB
Contents
module Mongo module Logging def write_logging_startup_message log(:warn, "Please note that logging negatively impacts client-side performance. " + "You should set your logging level no lower than :info in production.") end # Log a message with the given level. def log(level, msg) return unless @logger case level when :debug then @logger.debug "MONGODB [DEBUG] #{msg}" when :warn then @logger.warn "MONGODB [WARNING] #{msg}" when :error then @logger.error "MONGODB [ERROR] #{msg}" when :fatal then @logger.fatal "MONGODB [FATAL] #{msg}" else @logger.info "MONGODB [INFO] #{msg}" end end # Execute the block and log the operation described by name and payload. def instrument(name, payload = {}, &blk) res = yield log_operation(name, payload) res end protected def log_operation(name, payload) @logger ||= nil return unless @logger msg = "#{payload[:database]}['#{payload[:collection]}'].#{name}(" msg += payload.values_at(:selector, :document, :documents, :fields ).compact.map(&:inspect).join(', ') + ")" msg += ".skip(#{payload[:skip]})" if payload[:skip] msg += ".limit(#{payload[:limit]})" if payload[:limit] msg += ".sort(#{payload[:order]})" if payload[:order] @logger.debug "MONGODB #{msg}" end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mongo-1.5.2 | lib/mongo/util/logging.rb |
mongo-1.5.1 | lib/mongo/util/logging.rb |
mongo-1.5.0 | lib/mongo/util/logging.rb |
mongo-1.5.0.rc0 | lib/mongo/util/logging.rb |