9

node.jsで記述されたスクリプトがあり、「net」ライブラリを使用し、tcpを介して遠隔サービスと通信します。このスクリプトは'nodescript.js >> log.txt'コマンドを使用して開始され、console.log()関数を使用してログに記録されるスクリプト内のすべてがlog.txtに書き込まれますが、スクリプトが停止し、理由が見つからず、何も見つかりません。スクリプトがクラッシュした頃にlog.txtにログインします。

クラッシュの理由をキャプチャするにはどうすればよいですか?

4

2 に答える 2

13

uncaughtExceptionイベントを聴けませんでした。=>の線に沿った何か

process.on('uncaughtException', function (err) {
  console.log('Caught exception: ' + err);
});

PS:その後、FelixGeisendörferのこの記事に従ってプロセスを再開することをお勧めします

于 2012-04-12T13:01:04.150 に答える
10

stdoutとを分割することで、例外をキャプチャする方がはるかに簡単stderrです。そのようです:

node script.js 1> log.out 2> err.out

デフォルトでは、ノードは通常の出力をstdoutに記録します。これは、でキャプチャしていると思います>>

コメントに記載されているように、セグメンテーション違反はシェルによってstderrに送信されるシグナルであり、必ずしもプログラムではありません。他のオプションについては、このunix.stackexchangeの回答を参照してください。

于 2012-04-13T17:25:44.517 に答える