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.