最近学习,做c#的开发,用到了Log4Net这样一个日志管理!
当一切设置好之后,日志可以正常显示,以及备份!我是按大小,如果大于10MB 就进行备份!按时间的变更进行显示如下所示:
Logs_2011-10-10.txt.1
Logs_2011-10-10.txt.2
Logs_2011-10-10.txt.3
Logs_2011-10-10.txt.4
Logs_2011-10-10.txt.5
Logs_2011-10-11.txt
Logs_2011-10-12.txt
Logs_2011-10-13.txtLogs_2011-10-13.txt     为什么突然蹦出一个文件名称追加bug?
Logs_2011-10-13.txt
Logs_2011-10-14.txt也百度了很长时间,也有人提出同样地问题,但是一直没有解决答案! 如果哪位高手曾经遇到过,或者知道是什么原因请告诉我,  本人现在是很纠结、很纠结!

解决方案 »

  1.   


    #region 日志相关
            /// <summary>
            /// 写日志文件
            /// </summary>
            /// <param name="log"></param>
            public static void WriteLog(string log)
            {
                string filename = GetAppPath() + "Log" + DateTime.Today.ToString("yyyyMMdd") + ".log";
                WriteLog(log, filename);
            }        /// <summary>
            /// 写日志文件
            /// </summary>
            /// <param name="log">日志字符串</param>
            /// <param name="filename">日志文件名(包含完整路径)</param>
            public static void WriteLog(string log, string filename)
            {
                try
                {
                    StreamWriter sw = File.AppendText(filename);
                    sw.WriteLine(log);
                    sw.Flush();
                    sw.Close();
                }
                catch
                {}
            }
            #endregion        #region 操作系统常用信息获取
            /// <summary>
            /// 获取当前路径
            /// </summary>
            /// <returns></returns>
            public static string GetAppPath()
            {
                string path = AppDomain.CurrentDomain.BaseDirectory + @"\";
                return path.Replace(@"\\", @"\");
            }
      

  2.   

    3楼朋友,这么写不是手写log文件嘛。。不是用log4net进行异常日志管理啊~   不知道是不是我不懂你的意思。。还是你的意思没有表达清楚,  利用log4net进行写日志,我用的是配置xml的方式,当然手改log4net内部的代码方法再生成新的log4net.dll文件我倒是没去试过和研究 我只是不明白为什么正常的打印日志都没有问题,但是突然会偶尔出现一个这样的日志文件名称:Logs_2011-10-13.txtLogs_2011-10-13.txt 
      

  3.   


    额 我说的是咱们自己动手写的 不是调用log4net进行的日志管理
      

  4.   

    log4net的记录实现,基本也是这个原理
      

  5.   


    额,你这不等于没说嘛。 只不过封装起来了。。我问的是 用过log4net的人,出现名字追加的原因  怎么样可以避免名字追加!
      

  6.   

    那log4net我没用过。既然可以自己写,格式内容也可以自己定,又不是很难,为嘛还要依赖那个控件里的呢
      

  7.   

    不介意我翻尸吧?为什么要用log4net?原因很简单,它是单线程写,不会冲突,你这种并发一大就完蛋了,漏写很多的
      

  8.   

    再说楼主的问题,没办法解决,那是因为你当时非正常退出导致的,你应该是直接修改了Bin目录的文件导致log4net不正常shutdown