我正在尝试将我的strapi应用程序与哨兵集成,为此我需要编写一个中间件。使用以下文档: https://strapi.io/documentation/3.0.0-beta.x/advanced/middlewares.html,我能够使用以下功能创建自定义中间件:
module.exports = strapi => {
return {
initialize() {
strapi.app.use(async (ctx, next) => {
try {
await next();
} catch (error) {
Sentry.captureException(error)
}
});
}
};
};
但是,这样做会阻止strapi以通常的方式打印出错误以控制台,但错误是由哨兵应用程序捕获的。
所以,我的问题是:如何"无缝"捕获错误并将其发送到第三方应用程序,同时不妨碍 strapi 到控制台的默认功能和错误日志记录。
任何帮助将不胜感激!
谢谢:)
编辑:我发现所有 strapi 错误都可以在"繁荣"中间件上访问,如此文件所示:https://github.com/strapi/strapi/blob/6309af25c921640cb76aeeda463e55db1eb53ef1/packages/strapi/lib/middlewares/boom/index.js#L69
作者在这里给出了答案:https://github.com/strapi/strapi/issues/4071