1. Desain xml, yang harus berisi informasi berikut:
1. Datetime: Tanggal dan waktu terjadinya kesalahan/pengecualian
2. Nama file: Nama file tempat terjadinya kesalahan/pengecualian
3. Nama kelas: nama kelas tempat terjadinya kesalahan/pengecualian
4. Nama Metode: Nama metode tempat terjadinya kesalahan/pengecualian
5. Errormethod: nama fungsi yang mengandung kode kesalahan
6. Pesan: informasi kesalahan/pengecualian
7. Detail kesalahan: Detail kesalahan/pengecualian
8. IP: Alamat IP klien
9. URL: URL tempat terjadinya kesalahan
DemoXML:
DemoXML
<?xml versi="1.0" pengkodean="utf-8"?>
<log kesalahan>
<kesalahan>
<datetime>tanggalwaktu</datetime>
<nama file>nama file</nama file>
<namakelas>namakelas</namakelas>
<nama metode>nama metode</nama metode>
<metode kesalahan>metode kesalahan</metode kesalahan>
<pesan>Pesan Kesalahan</pesan>
<errordetails>Detail ada di sini</errordetails>
<IP>Alamat IP</IP>
<url>URL</url>
</kesalahan>
</log kesalahan>
2. Rancang kelas penanganan kesalahan: errorHandler.cs. Metode WriteError di dalamnya memerlukan dua parameter: Exception dan FileName:
errorHandler.cs
menggunakan Sistem;
menggunakan System.Collections.Generik;
menggunakan Sistem.Teks;
menggunakan Sistem.Xml;
menggunakan Sistem.Refleksi;
menggunakan Sistem.Diagnostik;
namespace code_center
{
errorHandler kelas publik
{
string _strErrorMessage, _strDetails, _strClassName, _strMethodName;
DateTime _dtOccuranceTime = DateTime baru();
kesalahan publikHandler()
{
}
errorHandler publik(Waktu TanggalWaktu, nama kelas string, nama metode string,
string errorMessage, detail string)
{
_dtOccuranceTime = waktu;
_strNamaKelas = Namakelas;
_strDetail = rincian;
_strErrorMessage = pesan kesalahan;
_strMethodName = nama metode;
}
public static void WriteError (Pengecualian ex)
{
WriteError(misal, "");
}
public static void WriteError (Contoh pengecualian, nama file string)
{
Dokumen XmlDocument = XmlDocument baru();
string strRootPath =
System.Configuration.ConfigurationManager.AppSettings["logfilepath"].ToString();
string xmlPath = Sistem.Web.HttpContext.Saat ini.Server.MapPath(strRootPath);
doc.Muat(@xmlPath);
XmlNode newXMLNode, oldXMLNode;
oldXMLNode = doc.ChildNodes[1].ChildNodes[0];
newXMLNode = oldXMLNode.CloneNode(benar);
StackTrace stackTrace = StackTrace baru();
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod();
newXMLNode.ChildNodes[0].InnerText = DateTime.Sekarang.ToString();
newXMLNode.ChildNodes[1].InnerText = nama file;
newXMLNode.ChildNodes[2].InnerText = methodBase.DeclaringType.FullName;
newXMLNode.ChildNodes[3].InnerText = metodeBase.Nama;
newXMLNode.ChildNodes[4].InnerText = ex.TargetSite.Name;
newXMLNode.ChildNodes[5].InnerText = ex.Pesan;
newXMLNode.ChildNodes[6].InnerText = ex.StackTrace;
newXMLNode.ChildNodes[7].InnerText = System.Web.HttpContext.Current.Request.UserHostAddress;
newXMLNode.ChildNodes[8].InnerText = System.Web.HttpContext.Current.Request.Url.OriginalString;
doc.ChildNodes[1].AppendChild(newXMLNode);
doc.Simpan(@xmlPath);
doc.HapusSemua();
}
}
}
3. Tambahkan di Web.config:
<Pengaturan Aplikasi>
<tambahkan key="logfilepath" value="~/errorHandling/errorlog.xml"/>
</Pengaturan Aplikasi>
4. Pengujian: Tambahkan dua potong kode pengujian ke situs web Anda
1. Di Halaman_Muat:
Halaman_Muat
kelas parsial publik _Default : System.Web.UI.Page
{
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
mencoba
{
melempar Pengecualian baru("Kesalahan khusus");
}
menangkap (Pengecualian ex)
{
Response.Write(ex.Message);
kirin.errorHandler.WriteError(misal, "Default.aspx.cs");
}
}
}
2. Tambahkan: ke Application_Error:
void Application_Error(pengirim objek, EventArgs e)
{
code_center.errorHandler.WriteError(Server.GetLastError().GetBaseException(),
"Global.asax");
}
3. Hasil pengecualian Page_Load:
kesalahanXML
<kesalahan>
<datetime>29-1-2010 9:29:24</datetime>
<namafile>Default.aspx.vb</namafile>
<classname>kirin._Default</classname>
<nama metode>Muat_Halaman</nama metode>
<metode kesalahan>Muat_Halaman</metode kesalahan>
<messsage>Kesalahan khusus</messsage>
<errordetails> Di kirin._Default.Page_Load(Pengirim objek, EventArgs e) lokasi C:Demokirin_code_centerkirinDefault.aspx.cs: nomor baris 16</errordetails>
<IP>127.0.0.1</IP>
<url>http://localhost:2192/default.aspx</url>
</kesalahan>
5. Kode lengkap:/Files/zhuqil/kirin_errorHandler.rar
Penulis: Zhu Qilin Sumber: http://zhuqil.cnblogs.com
Hak cipta artikel ini adalah milik penulis dan Blog Park. Pencetakan ulang diperbolehkan. Namun, pernyataan ini harus disimpan tanpa persetujuan penulis, dan tautan ke teks asli harus disediakan di posisi yang jelas di halaman artikel. hak untuk menuntut tanggung jawab hukum dilindungi undang-undang.