web-dev-qa-db-ja.com

heroku - すべてのログを見る方法

私はherokuに小さなアプリを持っています。ログを見たいときはいつでもコマンドラインに行き、

heroku logs

それは私に約100行しか表示されません。 herokuで私たちのアプリケーションの完全なログを見る方法はありませんか?

442
josh

更新(ありがとうdawmail333):

heroku logs -n 1500

または、ログを生き生きとさせるために

heroku logs -t 

Herokuのログドキュメント

数千行以上必要な場合は、herokuの Syslog Drain を使用できます。

代わりに(古い方法):

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

Herokuでロギングが大幅に向上しました!

$ heroku logs -n 500

もっといいね!

$ heroku logs --tail

参照: http://devcenter.heroku.com/articles/logging

更新

これらはもはやアドオンではなく、デフォルトの機能の一部です:)

138
nessur

Herokuはログをイベントの時系列ストリームとして扱います。ファイルシステム上の*.logファイルにアクセスすることは、さまざまな理由からそのような環境ではお勧めできません。

まず、アプリに複数のdynoがある場合、各ログファイルはアプリのイベントに対する部分的なビューのみを表します。全画面を表示するには、すべてのファイルを手動で集計する必要があります。

第二に、Herokuのファイルシステムはあなたのdynoが再起動されたり移動されたりした時(それは一日に一回 に起こる) ログファイルが失われるという一時的な意味です。だから、あなたはせいぜい1日のビューでその単一のdynoのログを見ることしかできません。

最後に、 Cedarスタックheroku console、さらにはheroku run bashを実行しても、現在実行中のdynoに接続できません。 bashコマンド専用の新しいものが生成されます。これは 1回限りのプロセス と呼ばれます。そのため、heroku run用に生成されたもので実際のhttpプロセスを実行している他のdynosのログファイルは見つかりません。

ロギング 、および一般的な可視性は、Herokuの第一級の市民であり、これらの問題に対処するツールがいくつかあります。まず、すべてのdynosとアプリケーションのすべてのレイヤーにまたがるアプリケーションイベントのリアルタイムストリームを確認するには、/ stackheroku logs -tコマンドを使用して出力を端末に合わせます。

$ 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 ...

これはあなたのアプリケーションの振る舞いを今観察するのに非常に役立ちます。ログを長期間保存する場合は、ログの保存、警告、およびトリガーを提供する多数の ログ記録アドオン のいずれかを使用できます。

最後に、ログファイルを自分で保存したい場合は、Herokuからイベントのストリームを受信して​​後処理/分析するように独自の syslogドレイン を設定することができます。あなた自身。

要約:静的ログファイルを表示するためにheroku consoleまたはheroku run bashを使用しないでください。 heroku logsまたはロギングアドオンを使用して、Herokuのアプリのログイベントのストリームにパイプインします。

49
Ryan Daigle

個々のストリーム/フィルタも見てください。

あなたのアプリケーションログだけを残す

heroku logs --source app -t

またはルータのログだけを見る

heroku logs --ps router

またはそれらを一緒にチェーン

heroku logs --source app --ps worker

とても良い..

21
Shawn Vader

まあ上記の答えはそれがあなたがコマンドラインから見るのを助けるのに非常に役立つでしょう。あなたがあなたのherokuアカウントにログインしてからあなたのアプリケーションを選択し、そして最後にview logsをクリックしなければならないようにあなたがあなたのGUIからしたいのであれば。

image view

18

続けて heroku logging

あなたのログを見るために、我々は持っています:

  1. logsコマンドは、デフォルトで100ログ行を再試行します。

herokuログ

  1. 最大1500行を表示します--num(または-n)オプション。

heroku logs -n 200

  1. リアルタイムでログを表示

heroku logs --tail

  1. Herokuにたくさんのアプリがある場合

herokuログ--app your_app_name

12
Minh Nguyen

ログファイルにアクセスするには、Herokuのコマンドラインインタフェース( CLIの使用法 )を使用します。

HerokuのCLIがインストールされていて、自分のアプリケーション名(https://myapp.herokuapp.com/など)がわかっている場合は、次のコマンドを実行できます。

heroku logs --tail --app=myapp

以下を使用してリアルタイムストリームでログにアクセスすることもできます。

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

ログがあなたにこのようなことを言っているなら:

npm ERR!この実行の完全なログは、次の場所にあります。

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

それから、Heroku CLI経由でbash端末を使ってそれらにアクセスすることもできます。

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

heroku logs -tは私たちにライブログを表示します。

8
ndrx42

あなたのアプリに 無料のPapertrailプラン のようなものを追加する価値があるかもしれません。ゼロ設定で、7日分のデータを最大10MB /日まで記録でき、2日分のログを検索できます。

7
clem

wARファイルの場合

私はgithubを使用しませんでした。その代わりにWARファイルを直接アップロードしました。

それで、以下は私を助けました:

heroku logs --app appname

誰かに役立つことを願っています。

4
Ula

詳細なログを見るには、production.rbファイルに2行を入れる必要があります。

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

そして実行することで

heroku logs -t

詳細なログを見ることができます。

2
sumit

私の解決策は、次のように、アプリケーションの初回起動時に完全なログを取得することです。

heroku logs -n 1500 > log

それからそれを最新に保つためにfgrep -vfを追加してください:

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

連続的なロギングのためには、x分(または秒)ごとにwatchを使ってそれを繰り返すだけです。

2
kpsk kpsk

私はこうするのが好きです

heroku logs --tail | tee -a herokuLogs

スクリプトをバックグラウンドで実行したままにして、テキストファイルからログをいつでも好きな方法でフィルタ処理することができます。

2
Ashish Pahwa

あなたは-tまたは--tailオプションを使う必要があり、あなたはあなたのherokuアプリ名を定義する必要があります。

heroku logs -t --app app_name
1
Peter Kota

アドオンを使うことをお勧めします。私はLogentriesを使います。それを使用するには、あなたのコマンドラインで実行してください:

heroku addons:create logentries:le_tryit

(このコマンドは無料アカウントのアドオンを作成しますが、必要に応じてアップグレードできることは明らかです)

Logentriesを使用すると、月に最大5GBのログ容量を節約できます。その情報は過去7日以内に彼らのコマンド検索によって検索可能であり、それはリアルタイムのアラートを持っています。

質問に答えるには、このアドオンを使用することで、Herokuがデフォルトで保存する1500行に達したときにログが失われないようにします。お役に立てれば!すてきな一日を!

1
Jose Paez

heroku logs -tは私たちにライブログを表示します。特定の数のログのheroku logs -n 1500

それでも私は特定の利点があり、無料の基本計画があるペーパートレイルアドオンを使用することをお勧めします。

0
svikramjeet