【发布时间】:2016-02-04 20:39:31
【问题描述】:
我想写异常的方法名、类名、文件名、行号。我怎样才能做到这一点?我尝试了下面的代码,将Exception 传递给在文本文件中写入msg 的函数。
string msg = "";
StackTrace st = new StackTrace(ex);
var frame=st.GetFrame(0);
msg = @"Message : " + ex.Message + " \n FileName: " + frame.GetFileName() + " \n Method Name : " + frame.GetMethod() + "\n Line Number : " + frame.GetFileLineNumber()+"\n Class Name :"+frame.GetMethod().DeclaringType;
日志写入文件如下
Message: Message : Attempted to divide by zero.
FileName:
Method Name : Void Page_Load(System.Object, System.EventArgs)
Line Number : 0
Class Name :RequestsView
为什么FileName 丢失并且LineNumber 显示为0,即使它出现在页面的另一行。如果有,请在代码中提出更正建议。
【问题讨论】:
-
尝试打印所有帧的信息,而不仅仅是第 0 个帧。
-
请查看StackTrace filename unknown问题的答案。
-
为了有效地记录以上所有要求的错误记录,请使用 ELMAH code.google.com/p/elmah