Se puede crear un objeto StackTrace
de un objeto de excepción. Incluirá el StackFrame
s que la excepción tiene información. A continuación, puede encontrar los nombres de los archivos y métodos, las posiciones y demás, si están disponibles. Por supuesto, esto debería ser evidente, pero todo esto está disponible solo si compiló su ensamblado para incluir símbolos de depuración (que supongo que podría estar disponible en 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
}
Good work buddy! –