我使用的是旧版本的log4net:1.2.0.21221。
当我使用新版本的log4net时,我能够成功地使用滚动文件appender。
使用属性:
log4net.GlobalContext.Properties["LogName"] = string.Concat(fileName, "_", dateTimeInfo, ".log");
log4net.ThreadContext.Properties["Version"] = "1";
XmlConfigurator.Configure();
旧版本的log4net中没有这些功能。如何使用我的配置文件中定义的滚动文件appender?每次启动我的应用程序时,我都需要一个全新的配置文件名。
答案 0 :(得分:1)
您没有理由使用GlobalContext正确命名文件。
请参阅以下示例:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="FILENAME" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<maximumFileSize value="100KB" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<datePattern value="-yyyyMMddhhmmss'.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<file value="..." />
是文件名的第一部分。 PRE文件名,如果你愿意的话。向下看一点,<datePattern value="..." />
是文件名的其余部分。它会附加到您放在文件属性中的值。在我的示例中,它将输出名为FILENAME-20110124090021.log
的文件。
如果您注意到我的datePattern的最后一部分,它在双引号内包含单引号'.log',它只是逃避日期时间调用评估的任何值。