【问题标题】:Using an old version of log4net: how do I use RollingFileAppender?使用旧版本的 log4net:如何使用 RollingFileAppender?
【发布时间】:2011-01-24 10:28:17
【问题描述】:

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

当我使用新版本的log4net时,我能够成功使用rolling file appender。

使用属性:

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

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

XmlConfigurator.Configure();

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

【问题讨论】:

    标签: log4net log4net-configuration


    【解决方案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>
    

    &lt;file value="..." /&gt; 是文件名的第一部分。 PRE 文件名,如果你愿意的话。再往下看一点,&lt;datePattern value="..." /&gt; 是文件名的其余部分。它会附加到您在文件属性中输入的值。在我的示例中,它将输出一个名为 FILENAME-20110124090021.log 的文件。

    如果您注意到我的 datePattern 的最后一部分,它在双引号内包含单引号“.log”,这只是逃避了 datetime 调用评估的任何值。

    【讨论】:

    • 但是请告诉我这个日志文件的路径在哪里...我可以在哪里设置我的日志文件的路径..
    • 你能不能给我提供一个示例代码来做到这一点.. 无法实现相同.. 谢谢
    • 日志文件将输出到与您的可执行文件相同的位置。如果您希望将其输出到 C:\LOGS 等位置,则只需更新文件 value="C:\Logs\FILENAME"
    • 请告诉我代码中有什么我需要设置的。我只使用 DOMConfigurator.Configure() 来配置记录器。但是日志文件没有出现在正在执行的程序集文件夹中。所以请帮助我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多