2016-04-22 47 views
3

當前我的Spring啓動應用程序記錄到一個名爲:myLog.log的文件,這是按預期工作的,但是我希望日誌文件的末尾有一個timestamp它會在每次運行時創建一個新文件使用Logback-test.xml向日志文件添加時間戳

我試圖在下面顯示的logback-test.xml文件中實現這一點,但它只是給我文件名:myLog.log 沒有時間戳。

我該如何解決這個問題?

的logback-的test.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 

    <logger name="org.springframework.web" level="INFO"/> 

    <!-- Send debug messages to System.out --> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>path/to/my/file/mylog.log</file> 
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
      <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
      <FileNamePattern>mylog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log</FileNamePattern> 
      <MinIndex>1</MinIndex> 
      <MaxIndex>10</MaxIndex> 
     </rollingPolicy> 

     <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
      <MaxFileSize>2MB</MaxFileSize> 
     </triggeringPolicy> 
    </appender> 

    <logger name="com.my.package" level="INFO" additivity="false"> 
     <appender-ref ref="STDOUT" /> 
     <appender-ref ref="FILE" /> 
    </logger> 

    <!-- By default, the level of the root level is set to DEBUG --> 
    <root level="INFO"> 
     <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 

回答

6

你可以這樣定義一個變量:

<timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/> 

(注意:不要在datePattern使用冒號)

然後直接在你的appenderfile元素中使用它:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>path/to/my/file/mylog-${myTimestamp}.log</file> 
... 
</appender> 

或者在一個簡單的FileAppender

<appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>path/to/my/file/mylog-${myTimestamp}.log</file> 
    <encoder> 
     <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern> 
    </encoder> 
</appender> 
+0

謝謝,這是工作,但我不得不更換{}時間戳與{} myTimestamp。但是,它確實創建了兩個日誌文件。我該如何解決這個問題? – java123999

+1

請參閱我的以下問題:http://stackoverflow.com/questions/36796728/logback-test-xml-configuration-is-producing-two-log-files-instead-of-one – java123999

+0

'myTimestamp' ofc。固定的 – nyname00

相關問題