web-dev-qa-db-fra.com

Débogage de Heroku

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!

31
AdamGold

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

21
Tam

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.

12
Blockpusher

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.

12
Michael Schmitz

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

8

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.

6
Jerry Clinesmith

Cela a fonctionné pour moi:

heroku config:set LOG_LEVEL=debug
5
Steven Soroka

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.

Voir la documentation ici.

1
user664833
config.log_level = ENV['APP_LOG_LEVEL'] ? ENV['APP_LOG_LEVEL'].to_sym : :error
0
Omer