【发布时间】:2021-08-03 04:50:34
【问题描述】:
我们在我们的 ASP.NET Core Web API 中使用 Microsoft.Extensions.Logging ILogging 接口,它公开了以下两种方法:
LogError(ILogger, Exception, String, Object[])
LogError(ILogger, String, Object[])
在我们的代码中处理异常时,我们会尽力记录它们,上面的接口将允许下面的两个方法调用都可以正常编译:
Logger.LogError(e, "Error message...")
Logger.LogError("Error message...", e) // bad call, will not log full exception info!
但是,只有第一种方法可以正确记录异常,包括堆栈跟踪信息。通过我们的代码库发现许多带有异常的LogError 调用是错误的。
所以,我的问题是,当最佳参数匹配不用于方法调用时,是否有某种编译选项或某种静态检查工具可以向我们发出警告或错误?显然,第一种方法更适合 Exception 类型的参数,但是在键入时很容易错过。
【问题讨论】:
标签: c# .net asp.net-core logging