Pregunta

Desde el raíles de guía la depuración, he encontrado que puedo personalizar la salida a mis archivos de registro usando este método simple:

logger.debug "Person attributes hash: #{@person.attributes.inspect}"

decidí usar esta medir la cantidad de variables a los cambios y pasa a través de control de flujo.

Me gustaría ser capaz de ver el número de la línea de mi código en el que se llama al método logger#debug. Algo como esto:

logger.debug "Person attributes hash: #{@person.attributes.inspect} from line #{LINE_NUMBER_VAR}"
¿Fue útil?

Solución

logger.debug "Person attributes hash: #{@person.attributes.inspect} from line #{__LINE__}"

Otros consejos

Utilice un decorador de Registrador:

class LoggerDecorator
  def initialize(logger)
    @logger = logger
  end

  %w{debug info warn error fatal}.each do |method|
    eval(<<-eomethod)
      def #{method}(msg)
        @logger.#{method}(position) {msg}
      end
    eomethod
  end

  private
  def position
    caller.at(1).sub(%r{.*/},'').sub(%r{:in\s.*},'')
  end
end

A partir de los carriles 5, esto es ahora cuece en via:

ActiveRecord::Base.verbose_query_logs = true

la documentación para más

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top