//Q1.请问这是Log4Net的Bug吗? 
我也遇到了这种情况,应该算是个BUG,配置日志文件大小可以解决,如设置为10M

解决方案 »

  1.   

    //Q1.请问这是Log4Net的Bug吗?  
    ////我也遇到了这种情况,应该算是个BUG,配置日志文件大小可以解决,如设置为10M因为我是同时运行同一个应用程序,文件大小配置10m也没有用啊,因为文件大小设定是当一个文件记入到如10m后,再重名命,而我这种情况是,同时运行时,希望同时生产不多的Log文件,但又不是按下面的方式生成.启动一个工具,生成的文件名:"Tool.log" 
    启动二个工具,生成的文件名:"Tool.logTool.log" 
    启动三个工具,生成的文件名:"Tool.logTool.logTool.log" 希望:启动一个工具,生成的文件名:"Tool_P001.log" 
    启动二个工具,生成的文件名:"Tool_P002.log" 
    启动三个工具,生成的文件名:"Tool_P003.log" 
      

  2.   

    不要让LOG4NET自己去初始化,建立一个标准配置文件,然后在初始化LOG4NET时向初始化函数传参,读取该标准配置文件后,修改FILE节为指定的输出文件,示例:
     public static void Init(string appName)
            {
                if (IsInited)
                    return;
                string s = string.Format(logFile, appName);
                if (System.IO.File.Exists(s))
                    System.IO.File.Delete(s);
                System.IO.File.WriteAllText(s, Properties.Resources.log4Net);
                System.Data.DataSet ds = new System.Data.DataSet();
                ds.ReadXml(new System.IO.StringReader(Properties.Resources.log4Net));
                ds.Tables["file"].Rows[0][0] = System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, string.Format("log\\log{0}.txt", appName));
                System.IO.Stream sm = new System.IO.MemoryStream();
                ds.WriteXml(s);            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(s));            IsInited = true;
            }
      

  3.   

    这不叫Bug吧,只是一个策略问题
      

  4.   


    楼上这位说的应该有道理。
    Log4Net为了防止重名而自动生成的标识。不喜欢,就可以想办法将生成的文件名换掉。