gpt4 book ai didi

javascript - node.js - PM2 将未捕获的异常记录到第三方服务(作为 Logentries)

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:29 24 4
gpt4 key购买 nike

我在我的 node.js 项目中使用 pm2 ( https://github.com/Unitech/pm2 )。此外,我还在 Logentries ( https://logentries.com) 中发送应用程序的错误日志。

我想知道是否可以从应用程序中记录未捕获的异常(例如,当出现严重故障并且 pm2 重新启动应用程序时)?我知道使用 process.on('uncaughtException') 是不好的做法,所以想听听一些建议。

谢谢!

最佳答案

您从哪里了解到 process.on('uncaughtException') 是一种不好的做法?

只要您在记录异常后退出进程,我就看不出有什么问题,下面是一个示例:

process.on('uncaughtException', function(e) {
console.error('Ouch, an unhandled exception');
//I like using new Error() for my errors (1)
console.error(e instanceof Error ? e.message : e);
process.exit(1);
});

(1):Javascript Error reference

编辑pm2-interface 现已弃用,请改用 require('pm2')。您将能够使用 bus system events 执行与以下完全相同的操作。 .


pm2 的替代方法是使用 pm2-interface并监听 process:exitprocess:exception 事件:

var ipm2 = require('pm2-interface')();

ipm2.on('ready', function() {
console.log('Connected to pm2');

ipm2.bus.on('process:exception', function(data){
console.log(data.pm2_env.name + 'had an exception');
});
});

这在通过监控流程管理多个流程时非常有用。

您可能想查看关于 how to build a custom pm2 logger 的博文.它可以为您提供有关通过 pm2-interface 监控进程的一些想法。

关于javascript - node.js - PM2 将未捕获的异常记录到第三方服务(作为 Logentries),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25849737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com