web-dev-qa-db-fra.com

heroku - comment voir tous les journaux

J'ai une petite application sur Heroku. Chaque fois que je veux voir les journaux, je vais à la ligne de commande et fais 

heroku logs

Cela ne me montre qu'environ 100 lignes. N'y a-t-il pas moyen de voir les journaux complets pour notre application sur heroku? 

432
josh

Mise à jour (merci à dawmail333):

heroku logs -n 1500

ou, pour suivre les journaux vivre 

heroku logs -t 

Documentation du journal Heroku

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

Alternativement (ancienne méthode):

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

L’exploitation forestière s’est considérablement améliorée à Heroku!

$ heroku logs -n 500

Meilleur!

$ heroku logs --tail

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

MIS À JOUR

Ce ne sont plus des add-ons, mais une partie de la fonctionnalité par défaut :)

136
nessur

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

Premièrement, si votre application a plus d'un dyno, chaque fichier journal ne représente qu'une vue partielle des événements de votre application. Vous devez regrouper manuellement tous les fichiers pour obtenir une vue complète.

Deuxièmement, le système de fichiers sur Heroku a une signification éphémère chaque fois que votre dyno est redémarré ou déplacé (ce qui se produit environ une fois par jour ) les fichiers journaux sont perdus. Ainsi, vous n'obtenez qu'une vue journalière dans les journaux de ce dyno unique.

Enfin, sur la pile de cèdre } _ exécuter heroku console ou même heroku run bash ne vous connecte pas à un dyno en cours d'exécution. Il en crée un nouveau spécifiquement pour la commande bash. Cela s'appelle un processus ponctuel . En tant que tel, vous ne trouverez pas les fichiers journaux de vos autres dynos exécutant les processus http sur celui généré pour heroku run.

Journalisation , et la visibilité en général, est un citoyen de premier plan sur Heroku et plusieurs outils permettent de résoudre ces problèmes. Tout d’abord, pour voir un flux d’événements d’application en temps réel sur tous les dynos et toutes les couches de l’application/pile, utilisez la commande heroku logs -t pour afficher le résultat en sortie sur 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 maintenant. Si vous souhaitez stocker les journaux pendant de plus longues périodes, vous pouvez utiliser l'un des nombreux modules de journalisation qui fournissent la conservation des journaux, des alertes et des déclencheurs.

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

Résumé: n'utilisez pas heroku console ou heroku run bash pour afficher les fichiers journaux statiques. Dirigez vers le flux d'événements de journal de Heroku pour votre application à l'aide de heroku logs ou d'un module complémentaire de journalisation.

48
Ryan Daigle

Voir également les flux/filtres individuels. 

E.g queue seulement vos journaux d'application

heroku logs --source app -t

Ou ne voir que les journaux du routeur

heroku logs --ps router

Ou les enchaîner 

heroku logs --source app --ps worker

Tellement bon..

19
Shawn Vader

Eh bien, les réponses ci-dessus sont très utiles, cela vous aidera à voir en ligne de commande. Considérant que si vous voulez faire depuis votre interface graphique, vous devez vous connecter à votre compte heroku, puis sélectionner votre application et enfin cliquer sur afficher les journaux

 image view

17

Suivre sur Heroku Logging

Pour voir vos journaux, nous avons:

  1. la commande logs retrive 100 lignes de journal par défaut.

journaux de heroku

  1. affiche au maximum 1500 lignes, option --num (ou -n).

heroku journaux -n 200

  1. Afficher les journaux en temps réel

heroku logs --tail

  1. Si vous avez plusieurs applications sur heroku

heroku logs --app your_app_name

11
Minh Nguyen

Vous pouvez accéder à vos fichiers journaux à l'aide de la ligne de commande de Heroku Interface ( Utilisation de l'interface CLI ). 

Si la CLI de Heroku est installée et que vous connaissez le nom de votre application (telle que https://myapp.herokuapp.com/), vous pouvez exécuter la commande suivante:

heroku logs --tail --app=myapp

Vous pouvez également accéder aux journaux dans un flux en temps réel à l'aide de:

heroku logs --source app --tail --app=myapp

Si les journaux vous disent quelque chose comme ça:

npm ERR! Un journal complet de cette exécution peut être trouvé dans: 

npm ERR! /app/.npm/_logs/2017-07-11T08_29_45_291Z-debug.log

Ensuite, vous pouvez également y accéder via le terminal bash via Heroku CLI:

heroku run bash --app=myapp
less ./.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
8
Benny Neugebauer

heroku logs -t nous montre les live logs.

8
ndrx42

Cela vaut peut-être la peine d’ajouter quelque chose comme le plan gratuit Papertrail à votre application. Aucune configuration, vous obtenez 7 jours de données de journalisation pouvant atteindre 10 Mo/jour et vous pouvez effectuer une recherche en arrière sur 2 jours de journaux.

7
clem

pour les fichiers WAR:

Je n'ai pas utilisé github, j'ai plutôt téléchargé directement un fichier WAR (que j'ai trouvé beaucoup plus facile et rapide).

Donc, ce qui suit m'a aidé:

heroku logs --app appname

J'espère que ça va aider quelqu'un.

3
Ula

Pour voir le journal détaillé, vous devez insérer deux lignes dans le fichier production.rb:

config.logger = Logger.new(STDOUT)
config.logger.level = Logger::DEBUG

puis en courant

heroku logs -t

vous pouvez voir les journaux détaillés.

2
sumit

Je préfère le faire de cette façon

heroku logs --tail | tee -a herokuLogs

Vous pouvez laisser le script s'exécuter en arrière-plan et vous pouvez simplement filtrer les journaux à partir du fichier texte comme vous le souhaitez à tout moment.

2
Ashish Pahwa

Je suggère d'utiliser un addon, j'utilise Logentries. Pour l'utiliser, lancez votre ligne de commande:

heroku addons:create logentries:le_tryit

(Cette commande crée l'addon pour un compte gratuit, mais vous pouvez évidemment mettre à niveau si vous le souhaitez)

Logentries vous permet d'économiser jusqu'à 5 Go de volume de journal par mois. Cette information est consultable par leur recherche de commande au cours des 7 derniers jours et contient des alertes en temps réel.

Donc, pour répondre à votre question, en utilisant cet addon, vous vous assurez que vos journaux ne sont plus perdus lorsque vous atteignez les 1500 lignes que Heroku enregistre par défaut. J'espère que cela t'aides! Passez une bonne journée!

1
Jose Paez

Ma solution est d’obtenir un journal complet au premier démarrage de l’application, par exemple:

heroku logs -n 1500 > log

puis ajoutez fgrep -vf pour le garder à jour, comme suit:

heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log

pour un enregistrement continu, il suffit de le parcourir en utilisant la surveillance toutes les x minutes (ou secondes). 

1
kpsk kpsk

heroku logs -t nous montre les live logs. heroku logs -n 1500 pour un nombre spécifique de journaux

Mais je recommanderais quand même d’utiliser un complément papier qui présente certains avantages et propose un plan de base gratuit.

0
svikramjeet

Vous devez utiliser les options -t ou --tail et définir le nom de votre application heroku.

heroku logs -t --app app_name
0
kotapeter