【问题标题】:Log file size check and log writing using asp.net使用 asp.net 进行日志文件大小检查和日志写入
【发布时间】:2016-01-04 08:49:15
【问题描述】:

我想在一个用 asp.net webforms 设计的网络应用程序中记录错误。

目前我使用以下代码在引发异常时记录错误

void Application_Error(object sender, EventArgs e) 
    { 

        // Code that runs when an unhandled error occurs


            Exception exc = Server.GetLastError();

            // Include enterprise logic for logging exceptions 
            // Get the absolute path to the log file 
            string logFile = "~/App_Data/ErrorLog.txt";
            logFile = HttpContext.Current.Server.MapPath(logFile);

            // Open the log file for append and write the log
            using (StreamWriter sw = new StreamWriter(logFile, true))
            {
                sw.WriteLine("********** {0} **********", DateTime.Now);
                if (exc.InnerException != null)
                {
                    sw.Write("Inner Exception Type: ");
                    sw.WriteLine(exc.InnerException.GetType().ToString());
                    sw.Write("Inner Exception: ");
                    sw.WriteLine(exc.InnerException.Message);
                    //sw.Write("Inner Source: ");
                    sw.WriteLine(exc.InnerException.Source);
                    if (exc.InnerException.StackTrace != null)
                    {
                      //  sw.WriteLine("Inner Stack Trace: ");
                      //  sw.WriteLine(exc.InnerException.StackTrace);
                    }
                }

                sw.Write("Exception Type: ");
                sw.WriteLine(exc.GetType().ToString());
                sw.WriteLine("Exception: " + exc.Message);
                // sw.WriteLine("Source: " + source);
                //sw.WriteLine("Stack Trace: ");
                if (exc.StackTrace != null)
                {
                 //   sw.WriteLine(exc.StackTrace);
                  //  sw.WriteLine();
                }
                // sw.Close();
            }

    }

如何修改此代码,以便我可以先检查文件大小,看看它是否已达到 1MB 大小。如果日志文件达到 1MB 大小,那么我将创建另一个带有日期标签等的文件。

【问题讨论】:

  • 可以使用FileInfo查看文件大小

标签: c# asp.net


【解决方案1】:

你可以这样使用 FileInfo:

FileInfo fi = new FileInfo(logFile);
if(fi.length > 1024) {
    // create new file
}

【讨论】:

    【解决方案2】:

    另一种选择是使用功能强大的日志库,例如NLog。它允许您为日志文件指定maximum file size,也可以自动指定delete old files

    如您所见,这些选项和许多其他选项都是基于 xml 配置自动处理的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多