Je construis une application avec Heroku et rencontre quelques problèmes. Je souhaite déboguer un contenu, comme je le fais avec un serveur Rails:
logger.debug '...'
Comment puis-je faire cela dans Heroku, afin que je puisse voir le débogage dans les journaux Heroku? (ou autre chose ..)
Merci!
Détails ici: http://devcenter.heroku.com/articles/logging
Assurez-vous également de définir le bon niveau de journalisation pour votre application Rails: http://blog.sethladd.com/2005/11/adjust-log-level-in-Ruby-on-Rails.html
La pile de cèdre dans Heroku ne semble pas répondre à la variable de configuration (env) de LOG_LEVEL qui fonctionne pour les piles précédentes (j'utilise l'addon logging: expand). J'ai essayé de définir LOG_LEVEL à debug
et DEBUG
sans succès.
Je ne peux voir le résultat de 'logger.debug' qu'en configurant config.log_level = :debug
dans config/environnements/production.rb.
Cela fait longtemps que je me bats avec cela, la solution est simple et agréable:
Définir dans production.rb au lieu de
config.log_level = :debug
endroit:
config.logger = Logger.new(STDOUT)
config.logger.level = Logger::DEBUG
et vous obtenez la sortie de journalisation complète.
heroku logs
sur votre ligne de commande vous donnera les journaux de l'application actuelle. Si vous avez étendu la journalisation activé, vous pouvez aligner cette sortie
En utilisant Rails 3.2, nous avons rendu cela configurable en modifiant config/environnements/{environment} .rb pour le piloter à partir d’une variable d’environnement:
config.log_level = ENV["LOG_LEVEL"].to_sym if ENV["LOG_LEVEL"]
Ensuite, nous pouvons modifier la variable de configuration Heroku pour la changer:
heroku config:set LOG_LEVEL=debug --app <app name>
Cela nous permet de nous connecter facilement plus ou moins au besoin.
Cela a fonctionné pour moi:
heroku config:set LOG_LEVEL=debug
Pour écrire dans vos journaux sur Heroku, au lieu d'utiliser logger.debug "..."
, utilisez simplement puts
:
puts "..."
Vous not devez même définir le paramètre config.log_level
dans config/environments/production.rb
.
config.log_level = ENV['APP_LOG_LEVEL'] ? ENV['APP_LOG_LEVEL'].to_sym : :error