【发布时间】:2015-02-07 18:38:35
【问题描述】:
如何将我自己的日志记录逻辑附加到 ASP.NET 5 应用程序以处理业务逻辑和较低层中引发的每个异常?
我在 Startup.cs 中尝试了自己的 ILoggerProvider 实现和 loggerfactory.AddProvider(new LoggerProvider(Configuration))。但它似乎拦截了内部 ASP.NET 的东西,而不是我在较低层抛出的异常。
【问题讨论】:
-
您是否希望捕获完全任意的异常?还是最终导致请求失败的异常?如果它试图捕获 all 异常,那实际上是不可能的,因为大多数异常都被系统的某些部分捕获和处理(然后馈送到记录器)。如果您发现某些异常没有被记录,请在github.com/aspnet(例如 MVC 或 XRE)上的相应 repo 中记录错误。
-
是的,这就是为什么它不起作用的原因,因为我在较低层捕获它们,但是当我临时评论捕获时,只有过滤器方法允许我捕获抛出的异常,我没有在 ILogger 中得到它,这是正常行为吗?如果没有,我可以再试一次(因为我目前已经实现了全局过滤器方法),如果是这样,我可以在 github 上写一下。
-
是的,如果你捕捉到异常,其他人不会看到它,所以没有什么要记录的。但是您很可能是正确的,还有一些其他组件,例如错误处理中间件,它没有记录异常。可能适用于github.com/aspnet/Diagnostics repo。
标签: asp.net asp.net-core