在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。
亚历克斯