ایجاد یک فایل متنی برای Error Log در ASP.Net

در این مقاله قصد داریم با استفاده از #C یک فایل برای Error Log ایجاد کنیم. خطاهایی که در ASP.Net رخ می دهد با زمان و تاریخ و علت ایجاد آن خطا در یک فایل متنی مانند Notpad ذخیره شود.

ایجاد یک فایل متنی برای Error Log  در ASP.Net

در این مقاله قصد داریم با استفاده از #C یک فایل برای Error Log ایجاد کنیم. خطاهایی که در ASP.Net رخ می دهد با زمان و تاریخ و علت ایجاد آن خطا در یک فایل متنی مانند Notpad ذخیره شود. راهی بسیار ساده برای پیدا کردن علت خطاهای ایجاد شده با استفاده از ابزار Notpad در Windows است.

یک پروژه ASP.Net ایجاد کرده و یک صفحه Web Form  به آن اضافه کنید. در این صفحه یک Button با خاصیت های زیر قرار دهید.


<asp:Button Text="Click to Raise Exception" runat="server" OnClick="RaiseException"/>

در Home.aspx.cs  از فضای نام زیر استفاده کرده و تابع RaiseExeption را تعریف کنید.


using System.IO;

زمانی که دکمه button کلیک شود کنترل رویداد بالا می آید و یک خطای تبدیل رشته به عدد درون بلوک try-catch رخ می دهد و تابع  LogError فراخوانی می شود.

درون تابع LogError جزئیات خطا در یک فایل متنی همراه با تاریخ و زمان ذخیره می شود.


protected void RaiseException(object sender, EventArgs e)
{
    try
    {
        int i = int.Parse("Mudassar");
    }
    catch (Exception ex)
    {
        this.LogError(ex);
    }
}
 
private void LogError(Exception ex)
{
    string message = string.Format("Time: {0}", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt"));
    message += Environment.NewLine;
    message += "-----------------------------------------------------------";
    message += Environment.NewLine;
    message += string.Format("Message: {0}", ex.Message);
    message += Environment.NewLine;
    message += string.Format("StackTrace: {0}", ex.StackTrace);
    message += Environment.NewLine;
    message += string.Format("Source: {0}", ex.Source);
    message += Environment.NewLine;
    message += string.Format("TargetSite: {0}", ex.TargetSite.ToString());
    message += Environment.NewLine;
    message += "-----------------------------------------------------------";
    message += Environment.NewLine;
    string path = Server.MapPath("~/ErrorLog/ErrorLog.txt");
    using (StreamWriter writer = new StreamWriter(path, true))
    {
        writer.WriteLine(message);
        writer.Close();
    }
}

در پایان هر پیام خطا درون یک فایل متنی نشان داده شده است.

فایل های ضمیمه
دانلود نسخه ی PDF این مطلب