web-dev-qa-db-fra.com

Connexion Ruby on Rails en mode production)

Je voudrais voir quelques variables dans le contrôleur, il a essayé ce qui suit:

Rails.logger.debug "Year: #{Time.now.year}"

puts "Year: #{Time.now.year}, Month: #{@month}"

où puis-je voir la sortie pour Logger ou Puts en mode production? Dois-je donc configurer quelque chose pour les afficher quelque part?

39
user1135541

Le niveau de journal normal en production est info, donc debug les journaux ne sont pas affichés.
Modifiez votre enregistrement en

Rails.logger.info "Year: #{Time.now.year}"

pour l'afficher dans production.log.

Alternativement (mais ce n'est pas une bonne idée), vous pouvez augmenter le niveau de journalisation dans /config/environments/production.rb:

config.log_level = :debug

Mise à jour Rails 4.2:

Maintenant, le niveau de débogage par défaut dans tous les environnements est :debug (comme @nabilh l'a mentionné).
Si vous voulez un environnement de production sans chatterie, vous pouvez réinitialiser votre niveau de journal dans /config/environments/production.rb à l'ancien :info:

config.log_level = :info
104
Martin M

Bien que je pense que @ martin-m a raison, vous ne voulez probablement pas encombrer vos journaux en utilisant config.log_level = :debug dans /config/environments/production.rb, Je crois que le niveau de journalisation par défaut dans tous les environnements est debug à partir de Rails 4.2 Ainsi, les journaux debug (et tous les niveaux supérieurs) seront affichés en production, sauf indication contraire.

Donc en réponse à votre question, vous pouvez maintenant écrire:

Rails.logger.debug "Year: #{Time.now.year}" et voir les résultats dans /log/production.log.

Voir ici pour une documentation plus détaillée. Ici est la documentation de Rails 4.1 pour comparaison.

6
nabilh