ASP.NET記錄錯誤日志


    在本文中,我們將通過一個簡單的處理來記錄在我們的網站中的錯誤和異常。我們這樣操作,每當遇到程序錯誤時,將使用者導航到一個單獨的頁面,同時錯誤將被記錄到服務器上的一個文本文件,每當錯誤發生時,我們將以日志的形式每天記錄。

首先,我先寫一個靜態方法用於將錯誤信息記錄到文本文件,這里是將錯誤信息記錄到服務器上的Error文件夾下,代碼如下:

 

    using System.Globalization;

/// <summary> /// 用於將錯誤信息輸出到txt文件 /// </summary> /// <param name="errorMessage">錯誤詳細信息</param> public static void WriteError(string errorMessage) { try { string path = "~/Error/" + DateTime.Today.ToString("yyMMdd") + ".txt"; if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path))) { File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close(); } using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path))) { w.WriteLine("\r\nLog Entry : "); w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture)); w.WriteLine(errorMessage); w.WriteLine("________________________________________________________"); w.Flush(); w.Close(); } } catch (Exception ex) { WriteError(ex.Message); } }

 

在網站Global.asax文件的Application_Error中加入如下代碼

    void Application_Error(object sender, EventArgs e)
    {
        // 在出現未處理的錯誤時運行的代碼
        Exception objErr = Server.GetLastError().GetBaseException();
        //記錄出現錯誤的IP地址
        string strIP = Request.UserHostAddress;
       string err = "Ip【" + strIP + "" + Environment.NewLine + "Error in【" + Request.Url.ToString() +
                          "" + Environment.NewLine + "Error Message【" + objErr.Message.ToString() + "";
        //記錄錯誤
        FN.WriteError(err);
    }

配置Web.Config文件

    <system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
     <!--可以指定其他錯誤頁面...-->
    </customErrors>
    </system.web>

建立一個GenericErrorPage.htm文件,用於使用者出現錯誤時呈現的錯誤頁面。

完!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM