【发布时间】:2017-12-21 17:56:58
【问题描述】:
我想在运行时更改我的日志名称而不更改附加程序。基本上,一旦它到达一天中的某个设定时间,我希望能够使用不同的文件。
这是我的 appender 的样子:
<appender name="info" type="log4net.Appender.RollingFileAppender">
<file value="logs\" />
<datePattern value="yyyyMMdd'_INFO.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline[%date]-%level-%logger[%M]- Linea:%L - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
这是我遍历附加程序的函数:
public void SetLogFile(string fileName)
{
foreach (var appender in log.Logger.Repository.GetAppenders())
{
try
{
((log4net.Appender.FileAppender)appender).File = fileName;
((log4net.Appender.FileAppender)appender).ActivateOptions();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
SetLogFile("log1.txt");
为此特定示例创建以下文件:
log1.txt20171221_INFO.log
我希望将我的日志文件命名为 log1.txt,并且在 log4net.config 文件中设置的 datePattern 不与名称连接,但如果不更改log4net.config appender 配置。
【问题讨论】:
标签: c# .net log4net log4net-configuration log4net-appender