web-dev-qa-db-fra.com

met ne pas imprimer des choses à la console

j'utilise _ POW pour le développement local de Rails. Je ne sais pas pourquoi, mais je ne peux pas print ou met des informations sur mon développement.log. Je veux mettre le contenu des variables à la console/log de mon contrôleur. aucun conseil?

j'ai lu mes journaux avec tail -f logs/development.log

merci!

21
Tronic

Au lieu de puts, essayez logger.info(). Se connecter à Rails est très flexible, mais cela signifie que vous ne pourrez parfois pas utiliser les outils les plus simples.

41
sarnold

Si vous effectuez un débogage et souhaitez uniquement afficher certains messages dans les journaux, vous pouvez procéder comme suit:

Rails.logger.debug("debug::" + person.name)

et

$ pow logs | grep debug::

maintenant, vous ne verrez que les messages de journalisation commençant par debug ::

8
opsb

Une autre option consiste à utiliser le consignateur de marquage Rails, http://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html .

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged('BCX') { logger.info 'Stuff' }                            # Logs "[BCX] Stuff"

$ pow logs | grep BCX
1
opsb

Pour ceux qui ne peuvent toujours pas le faire fonctionner, rappelez-vous que Ruby n'utilise pas de points-virgules. Ils ne sont utilisés que pour chaîner les commandes . Je les ajoutais à la fin à cause de la mémoire musculaire (venant de PHP), donc la console Ruby pensait que je continuais à entrer des commandes:

irb(main):001:0> puts "hi";
irb(main):002:0* puts "hi"
hi
hi
=> nil

J'espère que ça aide quelqu'un.

0
Zack Morris