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

发布于 2024-10-14 02:50:21 字数 377 浏览 2 评论 0原文

我使用的是旧版本的 log4net:1.2.0.21221。

当我使用新版本的log4net时,我能够成功地使用滚动文件附加器。

使用属性:

log4net.GlobalContext.Properties["LogName"] = string.Concat(fileName, "_", dateTimeInfo, ".log");

log4net.ThreadContext.Properties["Version"] = "1";

XmlConfigurator.Configure();

这些东西在旧版本的 log4net 中不可用。如何使用配置文件中定义的滚动文件附加器?每次启动应用程序时,我都需要一个全新的配置文件名称。

I am using an old version of log4net: 1.2.0.21221.

When I used the new version of log4net, I was able to successfully make use of rolling file appender.

Using the properties:

log4net.GlobalContext.Properties["LogName"] = string.Concat(fileName, "_", dateTimeInfo, ".log");

log4net.ThreadContext.Properties["Version"] = "1";

XmlConfigurator.Configure();

These things are not available in the older version of log4net. How do I make use of my rolling file appender defined in my config file? I need a brand new name for config file everytime I start my application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柏拉图鍀咏恒 2024-10-21 02:50:21

您没有理由使用 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>

是文件名的第一部分。 PRE 文件名(如果您愿意的话)。再往下看,有 这是文件名的其余部分。它会附加到您放入文件属性中的值。在我的示例中,它将输出一个名为 FILENAME-20110124090021.log 的文件。

如果您注意到我的 datePattern 的最后一部分,它在双引号内包含单引号“.log”,并且只是转义了日期时间调用评估的任何值。

There is no reason for you to be using the GlobalContext for naming your file properly.

See the following example:

<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>

The <file value="..." /> is the first part of your filename. The PRE filename if you will. Look a little farther down and there is the <datePattern value="..." /> which is the rest of the filename. It gets APPENDED to the value you put in the file attribute. In my example it will output a file named FILENAME-20110124090021.log.

If you notice the last part of my datePattern it contains single quotes '.log' inside double quotes and that simply escapes any values from being evaluated by the datetime call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文