如何在 .net core 中记录未处理的异常

13

使用Web API 2.0中的ELMAH功能和集中式日志记录与错误处理,运行时调用日志记录模块并决定是否可以处理,然后调用处理程序,否则仅记录它。如何在Web API Core中添加此功能,因为我们没有内置的集中式未处理日志记录功能。

我找到的一种方法是使用ExceptionHandler中间件,当它被调用时,获取异常并记录或发送电子邮件。但是如果处理程序没有被调用,如何记录这些未处理的异常?

3个回答

14

谢谢Thomas,错误日志记录和处理中间件的注册顺序是否有影响? - zubin joshi
1
如果添加错误日志中间件,应该在处理异常的其他中间件之后添加。您希望您的中间件尽可能靠近抛出的异常运行,因为其他中间件可能会“吞噬”异常。 - ThomasArdal
在Startup.cs中调用UseMiddleware<>方法确实可以工作,但是最好的做法是创建一个自定义的Use方法:为什么呢?我无法忍受开发人员在没有任何理由的情况下扔出“这是最佳实践”的说法。为什么引入一个无用的包装方法是“最佳实践”?如果有证据证明我错了,那我也没问题。话虽如此,这篇文章还是很有用的。 - Ed S.
好的,会确保更新帖子。 - ThomasArdal

0

0

尝试使用 Elmah 到 .NET Core 的 此端口

services.AddElmah(); // in ConfigureServices 

app.UseElmah(); // in Configure, before UseMvc()

仅有一个快速问题,我是否必须手动在任何地方放置try catch块并使用HttpContext.RiseError()记录异常到Elmahcore?还是一旦配置就可以自动捕获代码中抛出的异常? - Hamza Khanzada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接