Log4net 如何使用组合命名的卷备份配置静态日志文件名

Log4net 如何使用组合命名的卷备份配置静态日志文件名,log4net,config,rollingfileappender,Log4net,Config,Rollingfileappender,我使用了此配置,但始终会将日期添加到当前文件(“log.20130805.0.log”) 该配置的结果是: log.20130805.0.log log.20130805.1.log log.20130805.2.log log.20130805.3.log 使用staticLogFileName=true得到的结果是: log.log log.1.log log.2.log log.3.log 我想要的是: log.log log.20130805.1.log log.20130805

我使用了此配置,但始终会将日期添加到当前文件(“log.20130805.0.log”)


该配置的结果是:

log.20130805.0.log
log.20130805.1.log
log.20130805.2.log
log.20130805.3.log
使用staticLogFileName=true得到的结果是:

log.log
log.1.log
log.2.log
log.3.log
我想要的是:

log.log
log.20130805.1.log
log.20130805.2.log
log.20130805.3.log

您可以使用下面的功能。 此函数首先获取您在web.config中设置的文件位置,然后您可以添加所需的任何路径!(如日期、客户或……)

网络配置:


功能:

publicstaticvoidchangefilelocation(string\u客户名称,string\u项目)
{
XmlConfigurator.Configure();
log4net.Repository.Hierarchy.Hierarchy h=(log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
foreach(在h.Root.Appenders中出现a)
{
如果(a是文件追加器)
{
FileAppender fa=(FileAppender)a;
string sNowDate=DateTime.Now.ToLongDateString();
//以编程方式将其设置到此处所需的位置
字符串FileLocationinWebConfig=fa.File;
字符串logFileLocation=FileLocationinWebConfig+\u项目+“\\”+客户名称+“\\”+sNowDate+“.log”;
fa.File=logFileLocation;
fa.激活选项();
打破
}
}
}

结果是这样的:
C:\t4\TestProject\Customer1\Saturday,2013年8月31日。根据这些提示,我想这是不可能的,不幸的是(使用RollingFileAppender的当前实现):


我知道我来晚了,但我相信我已经找到了正确使用复合RollingFileAppender的方法。我把它贴在这里是为了子孙后代,以防有人在搜索中偶然发现:


这里的关键是:

附加当前日志文件时,您将看到:

logfile.log
logfile.1.log
logfile.2.log
etc...
新的一天到来后,应将其重命名为:

logfile.20200623.log
logfile.20200623.1.log
logfile.20200623.2.log
etc...
您将拥有一个新的logfile.log,仍然可以捕获当前的日志