查找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`

查找c#页面中发生错误的地方的路径

只使用ex.Sourceex.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);
        }