查找c#页面中发生错误的地方的路径
本文关键字:错误 路径 查找 | 更新日期: 2023-09-27 18:17:51
我想在Catch{}中放置一个方法,该方法将错误发送到我的".log"文件。我喜欢把页面的地址和发生错误的方法放在他们的位置。所以我希望你能帮助我,告诉我如何定义"strErrorPath"并把它作为我的方法输入。
public static void SendErrorToPersonalErrorMessage(Exception ex,string strErrorPath )
{
string strErrorMEssage = string.Format("Error:{0} Time:{1:yyy/mm/dd - hh:mm:ss},Address:{2}", ex.Message, System.DateTime.Now, strErrorPath);
System.IO.StreamWriter oStreamWriter = null;
string strPersonalErrorMEssagePath = "~/App_Data/Log/PersonalErrorMessage.log";
string strPersonalErrorMessagePathName = HttpContext.Current.Server.MapPath(strPersonalErrorMEssagePath);
oStreamWriter = new System.IO.StreamWriter(strPersonalErrorMessagePathName, true, System.Text.Encoding.UTF8);
}`enter code here`
只使用ex.Source
和ex.StackTrace
,它们将显示有关异常的有用信息。
您可以在这里阅读更多关于StackTrace
的信息
另一个选择是使用来电者信息属性。MSDN: Caller Information (c#)
public static void Log(string errMsg,
[System.Runtime.CompilerServices.CallerMemberName] string member = "",
[System.Runtime.CompilerServices.CallerFilePath] string filePath = "",
[System.Runtime.CompilerServices.CallerLineNumber] int sourceLine = 0)
{
//log somthing...
}
也许你可以试试:
try
{
// your code...
}
catch (Exception e)
{
string strErrorPath = Request.Url.PathAndQuery;
SendErrorToPersonalErrorMessage(e, strErrorPath);
}