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 faire

heroku logs 

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

    Mise à jour (merci à dawmail333):

     heroku logs -n 1500 

    ou, pour suivre les journaux en direct

     heroku logs -t 

    Documentation du journal Heroku

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

    Alternativement (ancienne méthode):

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

    La journalisation s’est grandement améliorée dans heroku!

     $ heroku logs -n 500 

    Meilleur!

     $ heroku logs --tail 

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

    ACTUALISÉ

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

    Heroku traite les journaux comme des stream d’événements ordonnés dans le temps. L’access aux *.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 devrez regrouper manuellement tous les fichiers pour obtenir la vue complète.

    Deuxièmement, le système de fichiers sur Heroku est éphémère, ce qui signifie que 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. Donc, vous obtenez au maximum un jour de vue dans les journaux de ce seul dyno.

    Enfin, sur la stack Cedar, en exécutant la heroku console ou même heroku run bash ne vous connecte pas à un dyno en cours d’exécution. Il en génère un nouveau spécifiquement pour la commande bash . C’est ce qu’on appelle un processus unique . En tant que tel, vous ne trouverez pas les fichiers journaux pour vos autres dynos qui exécutent les processus http réels sur celui généré pour heroku run .

    La journalisation et la visibilité en général constituent un citoyen de première classe sur Heroku et plusieurs outils permettent de résoudre ces problèmes. Tout d’abord, pour voir un stream en temps réel d’événements d’application sur tous les dynos et toutes les couches de l’application / stack, utilisez la commande heroku logs -t pour heroku logs -t sortie vers 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 parfaitement pour observer le comportement de votre application dès maintenant. Si vous souhaitez stocker les journaux pendant de longues périodes, vous pouvez utiliser l’un des nombreux modules complémentaires de journalisation qui fournissent 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 stream d’événements d’Heroku et effectuer un post-traitement / parsing par vous-même.

    Résumé: N’utilisez pas la heroku console ou heroku run bash pour afficher les fichiers journaux statiques. Entrez dans le stream d’événements de journalisation d’Heroku pour votre application en utilisant les heroku logs ou un module complémentaire de journalisation.

    Voir également les stream / filtres individuels.

    Par exemple, uniquement les journaux de votre application

     heroku logs --source app -t 

    Ou voir uniquement les journaux du routeur

     heroku logs --ps router 

    Ou les enchaîner

     heroku logs --source app --ps worker 

    Tellement bon..

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

    vue de l'image

    Suivez sur Heroku Logging

    Pour voir vos journaux, nous avons:

    1. La commande logs retrace par défaut 100 lignes de journal.

    journaux de heroku

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

    Heroku enregistre -n 200

    1. Afficher les journaux en temps réel

    rondins de heroku – queue

    1. Si vous avez beaucoup d’applications sur Heroku

    heroku logs –app your_app_name

    heroku logs -t nous montre les journaux en direct.

    Cela pourrait valoir la peine d’append quelque chose comme le plan Papertrail gratuit à votre application. Configuration zéro et vous obtenez 7 jours de données de journalisation jusqu’à 10 Mo / jour, et vous pouvez effectuer une recherche dans 2 jours de journaux.

    Vous pouvez accéder à vos fichiers journaux à l’aide de l’interface de ligne de commande ( utilisation CLI ) de Heroku.

    Si la CLI de Heroku est installée et que vous connaissez le nom de votre application (comme 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 stream en temps réel en utilisant:

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

    Si les journaux vous disent quelque chose comme ceci:

    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

    Vous pouvez également y accéder en utilisant le terminal bash via Heroku CLI:

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

    pour les fichiers WAR:

    Je n’ai pas utilisé github, mais j’ai 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.

    Pour voir le journal détaillé, vous devez mettre 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.

    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.

    Ma solution est d’obtenir un journal complet la première fois que l’application démarre, par exemple:

    heroku logs -n 1500 > log

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

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

    pour l’enregistrement continu, il suffit de l’itérer en utilisant watch pour toutes les x minutes (ou secondes).

    Je suggère d’utiliser un addon, j’utilise Logensortinges. Pour l’utiliser, exécutez votre ligne de commande:

    heroku addons:create logensortinges:le_tryit

    (cette commande crée l’addon pour un compte gratuit mais clairement vous pouvez mettre à jour si vous voulez)

    Logensortinges vous permet d’économiser jusqu’à 5 Go de volume de journal par mois. Ces informations sont consultables par leur recherche de commandes au cours des 7 derniers jours et elles contiennent 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!

    Pour la stack de cèdre, voir:

    https://devcenter.heroku.com/articles/oneoff-admin-ps

    vous devez exécuter:

    Heroku courir bash …