【问题标题】:Log4Net Rolling File Appender Rolling issueLog4Net 滚动文件附加程序滚动问题
【发布时间】:2009-12-21 23:19:00
【问题描述】:

我有以下 log4net 配置:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="Logs/%date{yyyy-MM-dd} Service.log" />           
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Date"/>
    <datePattern value="yyyy-MM-dd"/>
    <maxSizeRollBackups value="100"/>
    <maximumFileSize value="15MB"/>
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %-5level %logger: %message%newline" />
    </layout>
</appender>

数据将不断记录到日志文件并滚动正常,但我最终得到了这样的滚动文件:

2009-12-21 Service.log2009-12-22    (this is what it will write tonight)  
2009-12-21 Service.log    <-- this being the latest file  
2009-12-21 Service.log2009-12-21    <-- last updated 23:59

我希望文件是这样的:

2009-12-21 Service.log
2009-12-22 Service.log
2009-12-23 Service.log

【问题讨论】:

  • 我不关注..你想阻止什么?
  • Mauricio 我想阻止它写这样的日志文件 2009-12-21 Service.log2009-12-21 它应该是 2009-12-21 Service.log 2009-12-22 Service .log 2009-12-23 Service.log

标签: log4net rollingfileappender log4net-configuration


【解决方案1】:

去掉文件元素中的文件名和类型:

&lt;file value="Logs\" /&gt;

然后将您的 datePattern 更改为(注意:确保您适当地转义 'Service' 中的字母,例如 'log' 中的 g 是一种特殊格式,因此您需要使用 '\' 对其进行转义):

<datePattern value="yyyy-MM-dd Service.lo\g"/>

【讨论】:

    【解决方案2】:

    我认为以下应该是您需要的。

    中添加以下元素。

    <staticLogFileName value="true" />
    

    【讨论】:

    • 对不起,我还是遇到同样的问题
    【解决方案3】:

    您可以使用以下功能。 在此函数中,首先获取您在 webconfig 中设置的文件位置,然后您可以添加任何您想要的路径! (如日期、我们的客户或...)

    网络配置:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <file value="C:\\t4\\"/>
          <appendToFile value="true"/>
          <rollingStyle value="Composite"/>
          <datePattern value="_yyyy-MM-dd.lo'g'"/>
          <maxSizeRollBackups value="10"/>
          <maximumFileSize value="1MB"/>
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date User:%identity IP:%X{addr} Browser: %X{browser} Url: %X{url} [%thread] %-5level %c:%m%n"/>
          </layout>
    </appender>
    

    功能:

    public static void ChangeFileLocation(string _CustomerName,string _Project)
    {
        XmlConfigurator.Configure();
        log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();          
    
        foreach (IAppender a in h.Root.Appenders)
        {
            if (a is FileAppender)
            {
                FileAppender fa = (FileAppender)a;
                string sNowDate=  DateTime.Now.ToLongDateString();
                // Programmatically set this to the desired location here
                string FileLocationinWebConfig = fa.File;
                string logFileLocation = FileLocationinWebConfig + _Project + "\\" + _CustomerName + "\\" + sNowDate + ".log";
    
                fa.File = logFileLocation;
                fa.ActivateOptions();
                break;
            }
        }
    }
    

    结果如下:C:\Logs\TestProject\Customer1\Saturday, August 31, 2013.log

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多