Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确保最佳参数匹配与iLogg接口一起用于异常日志记录_C#_.net_Asp.net Core_Logging - Fatal编程技术网

C# 如何确保最佳参数匹配与iLogg接口一起用于异常日志记录

C# 如何确保最佳参数匹配与iLogg接口一起用于异常日志记录,c#,.net,asp.net-core,logging,C#,.net,Asp.net Core,Logging,我们在ASP.NET核心Web API中使用Microsoft.Extensions.Logging iLogg接口,该接口公开了以下两种方法: LogError(ILogger, Exception, String, Object[]) LogError(ILogger, String, Object[]) 在我们的代码中处理异常时,我们尽最大努力记录它们,上面的接口将允许下面的两个方法调用进行良好编译: Logger.LogError(e, "Error message...&q

我们在ASP.NET核心Web API中使用Microsoft.Extensions.Logging iLogg接口,该接口公开了以下两种方法:

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
调用都是错误的


所以,我的问题是,当方法调用未使用最佳参数匹配时,是否存在某种编译选项或静态检查工具来向我们提供警告或错误?显然,第一个方法更适合匹配异常类型参数,但是在键入时,您很容易忽略这一点。

为什么不使用与字符串、异常和对象数组相同的名称空间编写自己的扩展方法呢

为什么不使用与字符串、异常和对象数组相同的名称空间编写自己的扩展方法呢

好主意。唯一的缺点是找到所有代码都引用/使用的放置位置。好主意。唯一的缺点是找到所有代码都引用/使用的放置位置。