我正在使用C#、ASP.NET MVC Web Api、Entity Framework和.NET Framework 4.0进行开发。
我有以下代码来记录异常:
public void LogCompleteException(
string controllerName,
string actionName,
Exception exception)
{
string exceptionMessage = string.Empty;
Exception e = exception;
if (e.InnerException == null)
e = null;
else
while (e.InnerException != null) e = e.InnerException;
if (e == null)
exceptionMessage = exception.Message;
else
exceptionMessage = string.Format("{0}\n\rInnerException: {1}", exception.Message, e.Message);
_logger.ErrorFormat(
LogTextFormatString,
ExceptionText,
controllerName,
actionName,
exceptionMessage);
}
但是在我的日志文件中,我发现了这个:
当我写下“查看“EntityValidationErrors”属性以获取更多详细信息。”时,我只是举了一个例子,其中我没有记录一个重要属性。验证失败了一个或多个实体。请查看“EntityValidationErrors”属性以获取更多详细信息。
有很多种异常类型;但是用我的方法,我没有记录所有相关信息,因为可能会有像“EntityValidationErrors”这样的属性我没有记录。
当我将异常传递给记录器时,我不知道它有什么属性,也不知道如何记录它每个属性。
你知道一种将异常完全记录的方法吗?我的代码没有记录带有“EntityValidationErrors”属性或任何其他重要属性的异常。
我正在使用log4net进行记录。
DbEntityValidationException
异常并自己创建完整的错误消息吗? - MichaelDbEntityValidationException
异常只是一个我可以得到许多种异常而且没有任何重要信息的例子。 - VansFannel