使用旧版本的log4net:如何使用RollingFileAppender?

时间:2011-01-24 10:28:18

标签: log4net log4net-configuration

我使用的是旧版本的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?每次启动我的应用程序时,我都需要一个全新的配置文件名。

1 个答案:

答案 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',它只是逃避日期时间调用评估的任何值。