Merge pull request #97 from asinbow/fix_log_debug_level_detect

fix log debug level detect
This commit is contained in:
Tyler Brock 2012-06-01 11:38:37 -07:00
commit c76160c2f2

View File

@ -1,14 +1,10 @@
module Mongo
module Logging
DEBUG_LEVEL = defined?(Logger) ? Logger::DEBUG : 0
def write_logging_startup_message
if @logger && (@logger.level == DEBUG_LEVEL)
log(:debug, "Logging level is currently :debug which could negatively impact " +
log(:debug, "Logging level is currently :debug which could negatively impact " +
"client-side performance. You should set your logging level no lower than " +
":info in production.")
end
end
# Log a message with the given level.
@ -16,42 +12,41 @@ module Mongo
return unless @logger
case level
when :fatal then
@logger.fatal "MONGODB [FATAL] #{msg}"
@logger.fatal { "MONGODB [FATAL] #{msg}" }
when :error then
@logger.error "MONGODB [ERROR] #{msg}"
@logger.error { "MONGODB [ERROR] #{msg}" }
when :warn then
@logger.warn "MONGODB [WARNING] #{msg}"
@logger.warn { "MONGODB [WARNING] #{msg}" }
when :info then
@logger.info "MONGODB [INFO] #{msg}"
@logger.info { "MONGODB [INFO] #{msg}" }
when :debug then
@logger.debug "MONGODB [DEBUG] #{msg}"
@logger.debug { "MONGODB [DEBUG] #{msg}" }
else
@logger.debug "MONGODB [DEBUG] #{msg}"
@logger.debug { "MONGODB [DEBUG] #{msg}" }
end
end
# Execute the block and log the operation described by name and payload.
def instrument(name, payload = {}, &blk)
def instrument(name, payload = {})
start_time = Time.now
res = yield
if @logger && (@logger.level == DEBUG_LEVEL)
log_operation(name, payload, start_time)
end
log_operation(name, payload, start_time)
res
end
protected
def log_operation(name, payload, start_time)
msg = "MONGODB "
msg << "(#{((Time.now - start_time) * 1000).to_i}ms) "
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(msg)
@logger && @logger.debug do
msg = "MONGODB "
msg << "(#{((Time.now - start_time) * 1000).to_i}ms) "
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]
msg
end
end
end