2016-09-22 3 views
1

process.exit(1)が非同期 操作のコールバックに含まれているので、元のエラーが発生した場合はappendFileが動作し続け、不安定な状態になるのではないかと不思議です。私はprocess.exit(1)をfsとインラインで入れようとしましたが、書きません。uncaughtException次にappendFileがエラーになると、これは問題を引き起こしますか? NodeJs

エラーをログに記録するには、より良い方法でログに記録されるエラーがあります。 。あなたのプログラムは、コンソールにエラーコードとそれがfs.appendFileで終了するたびに出ることになるよう

const fs = require('fs'); 

    process.on('uncaughtException', e1 => { 
    fs.appendFile('./logs/error.log', e1.stack, e2 => { 
     //if (e1 || e2) console.log(e1,e2); 

     process.exit(1) 
    }); 

    }) 

答えて

1

はようになり、見えます。 process.exitは、一度それが命中した他のものを殺すはずです。

私はおそらくこのような何かしたい:ファイル書き込み、同じでは対照的に、エラーが発生した後に少し出プロセスとImが唯一懸念から、エラーに関する

const fs = require('fs'); 

process.on('uncaughtException', function (err) { 
    fs.appendFile('./logs/error.log', err.stack, (fserr) => { 
    if (err) console.log('FS ERROR', fserr); //now includes the fs error in log 
    console.log(err); //maybe include error from uncaughtException? 
    process.exit(1); //exit with error code 
    }); 
}); 
+0

イム実際に心配していないが時間 – Zach

+0

それはそれ以外に何が起こっているかによって異なります。 .appendFileが終了するまで、プロセスは終了しません。 ['fs.appendFileSync'](https://nodejs.org/api/fs.html#fs_fs_appendfilesync_file_data_options)を試すことができますが、ファイルに追加しようとしてエラーが発生した場合は、エラーを知らせることなく終了します。 –

+0

本当にうまくいくはずです。これは他に何が起こっているのかを知る前に起こるはずです。ありがとう! – Zach

関連する問題