2013-04-29 117 views
3

在我当前的项目中,我想创建日志文件明智的日期,即日志文件应该位于
文件夹的名称为date。 还应该在该特定文件夹中进行归档。logback创建名称为当前日期的文件夹内的日志文件

我正在使用的当前appender看起来像这样(它根据大小归档日志文件)。

<appender name="AUDITFILE" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${PROJECT_HOME}\\projectname\\audits\\myproject.log</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\myproject_%d{yyyy-MM-dd}.%i.zip 
     </fileNamePattern> 
     <maxHistory>10</maxHistory> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10KB</maxFileSize> 

     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%date %msg%n 
     </pattern> 
    </encoder> 
</appender> 

回答

6

至于fileNamePattern文档中提到的,你可以指定多个%d令牌,从而把日期的存档文件名的文件夹名称:

<fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\%d{yyyy-MM, aux}\\myproject_%d{yyyy-MM-dd}.%i.zip</fileNamePattern> 

请注意,只有一个%d令牌可以是主要的,所有其他标记必须通过传递'aux'参数标记为辅助标记。

但是,如果你也想将其放在非存档文件名的文件名,那么你有两个选择:

  1. 使用<timestamp />元素设置您在路径中使用一个变量。但是这个时间戳只会在启动时被设置一次,所以对于批处理运行而言不是很好,但对于服务而言是不错的。

  2. 执行像上述(1),但包裹<appender/><timestamp />SiftingAppender,这将使该时间戳进行重新评估,如果使用的logback> = 1.0.12的版本。不确定你想如何配置SiftingAppender。但希望这会让你走上正轨。

+0

感谢您的回复。对我真的很有帮助。 – 2013-05-06 09:55:35

相关问题