2017-09-03 84 views
0

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

目前,这是我的函数:

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上就拿起并当作一个错误,而无需将错误发送到客户端?我希望能够默默地处理错误并在后台继续进行报告,而不是将任何错误详细信息发送给客户端。

回答

0

最终找出答案。我使用的是KeystoneJS,它带有一个我以前没见过的默认错误处理程序;我现在修改它只是重定向人,同时仍然能够记录错误。

相关问题