C# 从异常中提取类和文件名

C# 从异常中提取类和文件名,c#,exception,C#,Exception,是否可以从异常对象提取类名和文件名 我希望将更好的日志记录集成到我的应用程序中,并希望包括异常发生位置的详细信息 在MVC中,Stacktrace不返回文件名和类名,我有点不知道在哪里可以找到它们 谢谢您可以从异常对象创建StackTrace对象。它将包括异常信息所在的StackFrames。然后,如果文件和方法名、位置等可用,您可以找到它们。当然,这一点不用说,但只有在编译程序集以包含调试符号(我假设可以在MVC中使用)时,所有这些才可用 catch (Exception ex) {

是否可以从异常对象提取类名和文件名

我希望将更好的日志记录集成到我的应用程序中,并希望包括异常发生位置的详细信息

在MVC中,Stacktrace不返回文件名和类名,我有点不知道在哪里可以找到它们


谢谢

您可以从异常对象创建
StackTrace
对象。它将包括异常信息所在的
StackFrame
s。然后,如果文件和方法名、位置等可用,您可以找到它们。当然,这一点不用说,但只有在编译程序集以包含调试符号(我假设可以在MVC中使用)时,所有这些才可用

catch (Exception ex)
{
    var st = new StackTrace(ex, true); // create the stack trace
    var query = st.GetFrames()         // get the frames
                  .Select(frame => new
                   {                   // get the info
                       FileName = frame.GetFileName(),
                       LineNumber = frame.GetFileLineNumber(),
                       ColumnNumber = frame.GetFileColumnNumber(),
                       Method = frame.GetMethod(),
                       Class = frame.GetMethod().DeclaringType,
                   });
    // log the information obtained from the query
}