ASP.NETレコードエラーログ
5581 ワード
本稿では,我々のウェブサイトにおける誤りと異常を簡単な処理で記録する.このように、プログラムエラーが発生するたびに、ユーザーを別のページにナビゲートし、エラーがサーバ上のテキストファイルに記録され、エラーが発生するたびにログ形式で毎日記録されます.
まず、サーバ上のErrorフォルダの下にエラー情報を記録する静的方法を書きます.コードは次のとおりです.
サイトでasaxファイルのApplication_Errorには次のコードが追加されています.
Webの構成Configファイル
GenericErrorPageを作成します.htmファイルは、ユーザがエラーが発生したときに表示されるエラーページに使用されます.
終わりだ!
まず、サーバ上の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
Log Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
w.WriteLine(errorMessage);
w.WriteLine("________________________________________________________");
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
サイトで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ファイルは、ユーザがエラーが発生したときに表示されるエラーページに使用されます.
終わりだ!