如何在C#中维护一个月的错误日志?

如何在C#中维护一个月的错误日志?,c#,logging,error-handling,C#,Logging,Error Handling,我在c#应用程序中维护错误日志,但每天都有。现在我想每月维护一次。如何在文件夹中签入一个月前已创建的文件n如果未创建,则创建它 public static void WriteError(string errorMessage) { try { string path = "~/Error/" + DateTime.Today.ToString("dd-MM-yy") + ".txt"; if (!File.

我在c#应用程序中维护错误日志,但每天都有。现在我想每月维护一次。如何在文件夹中签入一个月前已创建的文件n如果未创建,则创建它

public static void WriteError(string errorMessage)
    {
        try
        {
            string path = "~/Error/" + DateTime.Today.ToString("dd-MM-yy") + ".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());
                //w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
                string err = "Error in: " + System.Web.HttpContext.Current.Request.Url.ToString() +
                              ". Error Message:" + errorMessage;
                w.WriteLine(err);
                w.WriteLine("__________________________");
                w.Flush();
                w.Close();

            }
        }
        catch (Exception ex)
        {
            if (GlobalVar.DebugLevel == Convert.ToInt16(EnDebugLevel.Medium))
            ErrorLog.WriteError(ex.Message);
            //WriteError(ex.Message);
        }

    }

}
请帮我解决这个问题。
谢谢。

不要自己处理日志记录,有些库可以帮助您完成这项工作。退房

您可以使用滚动文件追加器每月自动为您创建日志

您可以这样配置它:

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net">      
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<param  name="StaticLogFileName" value="true"/> 
<file type="log4net.Util.PatternString" value="C:\log4net\TestLog_%date{yyyyMM}.log" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyyMM" />
    <maximumFileSize value="1000KB" />
    <maxSizeRollBackups value="3" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %date{dd MMM yyyy HH:mm:ss,fff} %logger - %message%newline" />
    </layout>
</appender>

要了解有关配置的更多信息,这并不能回答问题。它应该是一个关于op尝试做什么的替代方案的评论/讨论点。
public class LogTest
{
    private static readonly ILog logger = LogManager.GetLogger(typeof(LogTest));

    static void Main(string[] args)
    {
        logger.Error("an error!");
    }
}