numéro de la ligne de sortie dans le fichier journal Rails
-
20-09-2019 - |
Question
De la Guide Rails sur le débogage, je trouve que je peux personnaliser mes fichiers de sortie à journaux en utilisant cette méthode simple:
logger.debug "Person attributes hash: #{@person.attributes.inspect}"
J'ai décidé de suivre cette utilisation comment une variable change et passe par le contrôle de flux.
Je voudrais être en mesure de voir le numéro de ligne de mon code où la méthode de logger#debug
a été appelé. Quelque chose comme ceci:
logger.debug "Person attributes hash: #{@person.attributes.inspect} from line #{LINE_NUMBER_VAR}"
La solution
logger.debug "Person attributes hash: #{@person.attributes.inspect} from line #{__LINE__}"
Autres conseils
Utilisez un décorateur sur Logger:
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
Rails 5, ceci est maintenant cuit via:
ActiveRecord::Base.verbose_query_logs = true
Voir la documentation pour plus
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow