515 votes

heroku - comment voir tous les journaux ?

J'ai une petite application sur Heroku. Quand je veux voir les logs, je vais à la ligne de commande et je fais

heroku logs

Cela ne me montre qu'une centaine de lignes. N'y a-t-il pas un moyen de voir les logs complets de notre application sur heroku ?

854voto

glebm Points 6620

Mise à jour (grâce à dawmail333) :

heroku logs -n 1500

ou, pour suivre les journaux en direct

heroku logs -t 

Documentation sur les journaux Heroku

Si vous avez besoin de plus de quelques milliers de lignes, vous pouvez utiliser l'outil d'heroku Drains Syslog

Alternativement (ancienne méthode) :

$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }

5 votes

Cela ne fonctionne plus sur la pile de cèdres. Quelqu'un a-t-il trouvé une nouvelle alternative ?

2 votes

Il suffit d'utiliser heroku logs -n 1500 c'est la meilleure méthode disponible sur Cedar. Si vous avez besoin de plus de lignes que cela, vous avez besoin d'un drain syslog : devcenter.heroku.com/articles/logging#syslog_drains

0 votes

C'est une astuce utile aussi pour les problèmes d'Asset Pipeline : heroku logs -n 2000 | grep 'precompiled'.

145voto

nessur Points 783

La journalisation a été grandement améliorée dans heroku !

$ heroku logs -n 500

Mieux !

$ heroku logs --tail

références : http://devcenter.heroku.com/articles/logging

MISE À JOUR

Il ne s'agit plus de modules complémentaires, mais d'une partie de la fonctionnalité par défaut :)

5 votes

De plus, -n peut aller jusqu'à 1500, je suppose que Heroku coupe tout ce qui se trouve au-delà.

55voto

Ryan Daigle Points 5039

Heroku traite les journaux comme des flux d'événements ordonnés dans le temps. Accès à *.log sur le système de fichiers n'est pas recommandé dans un tel environnement pour diverses raisons.

Tout d'abord, si votre application dispose de plus d'un banc d'essai, chaque fichier journal ne représente qu'une vue partielle des événements de votre application. Vous devrez agréger manuellement tous les fichiers pour obtenir une vue complète.

Deuxièmement, le système de fichiers sur Heroku est éphémère, ce qui signifie qu'à chaque fois que votre dyno est redémarré ou déplacé (ce qui arrive à peu près une fois par jour )les fichiers journaux sont perdus. Vous n'avez donc qu'un aperçu d'une journée des données de ce seul banc.

Enfin, sur le Pile de cèdres en cours d'exécution heroku console ou même heroku run bash ne vous connecte pas à un banc d'essai en cours de fonctionnement. Il en crée un nouveau spécifiquement pour l'opération. bash commande. Cela s'appelle un processus ponctuel . Ainsi, vous ne trouverez pas les fichiers journaux de vos autres dynos qui exécutent les processus http réels sur celui qui a été créé pour heroku run .

Enregistrement et la visibilité en général, est un citoyen de première classe sur Heroku et il existe plusieurs outils qui traitent ces questions. Tout d'abord, pour voir un flux en temps réel des événements de l'application sur tous les bancs d'essai et toutes les couches de l'application/de la pile. utiliser le heroku logs -t pour mettre la sortie en queue dans votre terminal.

$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...

Cela fonctionne très bien pour observer le comportement de votre application dans l'immédiat. Si vous souhaitez stocker les journaux pour des périodes plus longues, vous pouvez utiliser l'un des nombreux outils de gestion des journaux. Compléments d'enregistrement qui assurent la conservation des journaux, les alertes et les déclencheurs.

Enfin, si vous souhaitez stocker les fichiers journaux vous-même, vous pouvez configurer votre propre drain syslog pour recevoir le flux d'événements de Heroku et le post-traiter/analyser vous-même.

Résumé : Ne pas utiliser heroku console ou heroku run bash pour afficher les fichiers journaux statiques. Pipe dans le flux d'événements de journal de Heroku pour votre application en utilisant heroku logs ou un module complémentaire de journalisation.

27voto

Shawn Vader Points 3080

Voir aussi les flux/filtres individuels.

Par exemple, les journaux de votre application seulement

heroku logs --source app -t

Ou voir seulement les journaux du routeur

heroku logs --ps router

Ou les enchaîner

heroku logs --source app --ps worker

Si bien

5 votes

Pour voir uniquement les logs de mon application, je fais : heroku logs --ps web.1 (avec 1 banc d'essai)

9voto

endeR Points 485

heroku logs -t nous montre les journaux en direct.

0 votes

Mais ça s'arrêtera au bout d'un moment.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X