2012-04-29 19 views
12

私のnodejsアプリケーションがクラッシュし続けるのを発見したので、私はforever app.jsを使ってアプリケーションを起動し、クラッシュ時に自動的に再起動させました。nodejsのForeverを使用してconsole.logsを画面に出力する

問題:私のアプリは、console.logutil.logで実行されるので、役に立つ情報がたくさんあります。私はscreenを使用してノードアプリケーションを実行していましたが、nodejsアプリケーションを実行するために永遠に使用しています。すべての出力が表示されなくなりました。

nodejsアプリケーションのすべての出力をリアルタイムで見る方法はありますか?

+0

ジャスト尾でログファイルを開くが、あなたが必要な場合は、出力をリアルタイムで見るには、永遠に(つまりデバッグして)使用しないことを推奨します。 – jli

+1

私はいくつかの情報を出力するので、私はジョブの数、接続されたクライアントの数をいつでも監視することができ、負荷を監視し、クライアントを追加するか、クライアントプールの半分がクラッシュしたかを判断するのに非常に便利です。私がやりたいことをするには、このnodejsサーバーに接続してデバッグ情報を受け取るための「マスタークライアント」を用意する必要があります。または別の方法があります – Nyxynyx

+0

私は開発中ですので、私は永遠に走っていますので、私はそれを使用する方法を学び、私が遭遇する可能性のある落とし穴を発見することができます。私はdevの中で永遠に使うのは「悪い」という理由がないのです。 – AJB

答えて

24

このシェルコマンドを使用すると、ログファイルをライブで見ることができます。

tail -f /path/to/logfile 

これが必要なのかどうかわかりません。

+0

私が必要とするような音がするかもしれません、私は 'tail 'を試すために私のシステムに戻る必要があります。クイックグーグル検索では、ファイル内の最後のX個の行が表示されますが、リアルタイムで更新されますか? – Nyxynyx

+2

マニュアルページを読まなかった。 – Hello71

+2

'-f'フラグが私の必要とすることを行います。ありがとう! – Nyxynyx

19

と直接永遠コマンド:

forever logs app.js -f 

それはあなたのアプリケーションのリアルタイム出力で表示され、永遠に記録します(ショーは変更がメッセージを再起動&検出)。

forever -o out.log -e err.log my-script.js 

-o-eはstdoutとstderrのログファイルを定義します。あなたは永遠にあなたがこの例を見ることができますし--helpフラグを渡すと

+0

これは動作します。プロセスを開始してください。永遠にapp.jsを起動してから、永遠にapp.js -fを記録します。 – JLavoie

3

-o OUTFILE  Logs stdout from child script to OUTFILE 
-e ERRFILE  Logs stderr from child script to ERRFILE 

永遠に開発のために少し残虐であるようです。 Supervisorに打撃を与え、あなたはより良いそれを好きかどうかを確認:どこへ行く

npm install -g supervisor 
supervisor app.js 
1

最も簡単な方法は、

実行されます。

forever logs // will give you list of log files 
forever logs 0 -f // then just provide the index of log 
関連する問題