默默地向Papertrail报告错误

时间:2017-09-03 13:58:53

标签: node.js heroku papertrail-app

我正在使用Heroku上的一个大型Node.js应用程序,由Papertrail维护日志记录。我有一个中央错误处理和日志记录功能,目前只是将错误记录到控制台,显示一个通用的“发生错误!”对话框,并将客户端重定向到特定页面(取决于发生错误的位置)。但是,Papertrail和Heroku都没有将此视为真正的错误,并且如果发生这种错误,我不会收到任何类型的通知或警报。

目前,这是我的职责:

utilities.errorLogger = (err) => {
    console.error(err);
};

我试图抛出错误,其工作原理如下:

utilities.errorLogger = (err) => {
    throw new Error(err);
};

然后错误会显示给客户端,而不是被重定向,让最终用户感到困惑。类似地,将错误放在try-catch块中不会改变我现在拥有的任何内容(记录错误但Papertrail或Heroku没有记录错误)。

utilities.errorLogger = (err) => {
    try {
        throw new Error(err);
    }
    catch (err) {
         console.error(err);
    }
};

我如何能够默默地为Papertrail和Heroku抛出错误并将其视为错误,而无需将错误发送给客户端?我希望能够以静默方式处理错误,并在后台继续报告,而不是将任何错误详细信息发送给客户端。

1 个答案:

答案 0 :(得分:0)

结束找到答案。我使用KeystoneJS附带了一个我以前没见过的默认错误处理程序;我现在修改它只是为了重定向人,同时仍能记录错误。