roo*_*lan 5 log4net config rollingfileappender
我使用了这个配置,但总是将日期添加到当前文件('log.20130805.0.log').
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/logFile.log" />
<appendToFile value="true" />
<preserveLogFileNameExtension value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyyMMdd" />
<maximumFileSize value="10MB" />
<countDirection value="1"/>
<maxSizeRollBackups value="-1" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
该配置的结果是:
log.20130805.0.log
log.20130805.1.log
log.20130805.2.log
log.20130805.3.log
Run Code Online (Sandbox Code Playgroud)
我得到的staticLogFileName = true是:
log.log
log.1.log
log.2.log
log.3.log
Run Code Online (Sandbox Code Playgroud)
我想要的是:
log.log
log.20130805.1.log
log.20130805.2.log
log.20130805.3.log
Run Code Online (Sandbox Code Playgroud)
我知道我迟到了,但我相信我已经弄清楚如何正确使用复合 RollingFileAppender。我将其发布在这里供后代使用,以防有人在搜索中偶然发现此内容:
<appender name="rollingfileappender" type="log4net.Appender.RollingFileAppender">
<file value="C:\Logs\logfile.log" />
<datePattern value=".yyyyMMdd" />
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100Kb" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.DynamicPatternLayout">
<conversionPattern value="%[level] - %date - %message" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
这里的关键是:
<preserveLogFileNameExtension value="true" />
和
<staticLogFileName value="true" />
当您当前的日志文件被附加时,您将看到:
logfile.log
logfile.1.log
logfile.2.log
etc...
Run Code Online (Sandbox Code Playgroud)
一旦新的一天到来,这些应该重命名为:
logfile.20200623.log
logfile.20200623.1.log
logfile.20200623.2.log
etc...
Run Code Online (Sandbox Code Playgroud)
您将有一个新的 logfile.log,仍然捕获当前的日志。
小智 0
您可以使用下面的功能。该函数首先获取您在 web.config 中设置的文件位置,然后您可以添加任何您想要的路径!(例如日期或客户或...)
网络配置:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\t4\\"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<datePattern value="_yyyy-MM-dd.lo'g'"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date User:%identity IP:%X{addr} Browser: %X{browser} Url: %X{url} [%thread] %-5level %c:%m%n"/>
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
功能:
public static void ChangeFileLocation(string _CustomerName,string _Project)
{
XmlConfigurator.Configure();
log4net.Repository.Hierarchy.Hierarchy h =(log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
foreach (IAppender a in h.Root.Appenders)
{
if (a is FileAppender)
{
FileAppender fa = (FileAppender)a;
string sNowDate= DateTime.Now.ToLongDateString();
// Programmatically set this to the desired location here
string FileLocationinWebConfig = fa.File;
string logFileLocation = FileLocationinWebConfig + _Project + "\\" + CustomerName + "\\" + sNowDate + ".log";
fa.File = logFileLocation;
fa.ActivateOptions();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果是这样的:C:\t4\TestProject\Customer1\Saturday, August 31, 2013.log
| 归档时间: |
|
| 查看次数: |
8505 次 |
| 最近记录: |