Pergunta

De Guia dos trilhos Na depuração, descobri que posso personalizar a saída nos meus arquivos de log usando este método simples:

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

Decidi usar isso para rastrear como uma variável muda e passa pelo controle de fluxo.

Eu gostaria de poder ver o número da linha do meu código onde logger#debug o método foi chamado. Algo assim:

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

Solução

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

Outras dicas

Use um decorador no madeireiro:

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 Rails 5, agora é assado em Via:

ActiveRecord::Base.verbose_query_logs = true

Ver a documentação para mais

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top