log4net动态修改文件名【正规方法】

为什么说是正规呢?是因为还有不正规的方法

1.先说正规方法

  输出日志前,使用log4net提供的工具log4net.Util.PatternString来进行参数替换

在xml里面这样写

在c#里面这样写

log4net.GlobalContext.Properties["fname"] = m_siteId;
log4net.Config.XmlConfigurator.Configure();

*******注意*************************************

一定要去掉下面这句,否则可能导致程序死锁

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

static ILog logger;                

log4net.GlobalContext.Properties["fname"] = m_siteId;
log4net.Config.XmlConfigurator.Configure();

logger = LogManager.GetLogger("DEBUG");

logger.Debug("test");

 

    
      
        
        
      
    
      
      
      
      
      
        
        
        
        
        
      
  

2.不正规的方法 

  打开日志后,动态修改文件名字,不过这样做的缺点是会输出一个空白的修改前的日志文件,很不爽。

            var appenders = logger.Logger.Repository.GetAppenders();
            foreach (var app in appenders)
            {
                var ra = app as RollingFileAppender;
                ra.File = folder;
                ra.ActivateOptions();
            }

 

 

你可能感兴趣的:(log4net动态修改文件名【正规方法】)