在Node.js + Express中logging错误的任何实际稳定的方法?

所以,我现在一直在安静的看着这个。 从Node.js 0.8.15开始, Event: 'uncaughtException' http ://nodejs.org/api/process.html#process_event_uncaughtexception的Event: 'uncaughtException'说:

 Don't use it, use domains instead. If you do use it, restart your application after every unhandled exception! 

并在http://nodejs.org/api/domain.html域说:

 Stability: 1 - Experimental 

(他们也拒绝为我工作 – 我的应用程序仍然崩溃)

所有我想要做的是不让我的Node.js + Express应用程序崩溃。

任何人都成功地将所有错误logging到文件(预期和意外的语法错误),并不让Node.js崩溃?

我听到很多理论上的答案,任何实际的代码是有效的?

我遇到类似的情况,并已使用未捕获的exception。 它可能不是很漂亮,但有一些额外的工具,我想你可以得到一个不错的结果。

使用Forever和Winston

让它崩溃

如果你只是想保持你的应用程序,也许可以考虑从NodeJitsu永远使用。 你可以设置一个阈值来重新启动你的应用程序的次数,如果你有一个讨厌的错误,它只是不会熬夜。 不允许应用程序在发生未捕获的exception的情况下循环可能会使应用程序处于无效状态,并导致更多exception。 为什么不让它崩溃,并永远为你重新启动它。

在退出之前logging

要捕获并logging错误,请尝试使用winston来捕获并logging未捕获的exception,然后退出。 请参阅处理未捕获的例外与Winston的自述文件,说明如何处理这个确切的情况。 如果winston正在login到一个文件,你可以参考它,看看你的应用程序多久崩溃,为什么。

结果

结合这两者,你应该能够设置一个你可以引用的未捕获exception日志文件,在大多数情况下让你的应用程序启动并运行,并避免忽略可能使你的应用程序处于无效状态的exception。

亚历克斯