2017-10-15 525 views
2

我正在重寫一個小的DropWizard應用程序以在SpringBoot上運行。如何使用YAML爲Logback/Springboot配置多個日誌文件?

我的DW應用程序有以下日誌記錄配置其工作原理:

logging: 
    level: INFO 
    appenders: 
    - type: file 
     currentLogFilename: /var/log/paas/console.log 
     archivedLogFilenamePattern: /var/log/paas/console.log-%d.gz 
     archivedFileCount: 7 

    loggers: 
    com.myorg: 
     level: DEBUG 
     appenders: 
     - type: file 
      currentLogFilename: /var/log/paas/paas.log 
      archivedLogFilenamePattern: /var/log/paas/paas.log-%d.gz 
      archivedFileCount: 7 

這個配置我的應用程序和控制檯消息分隔成兩個獨立的日誌。

當我嘗試使用與SpringBoot相同的配置時,它沒有任何作用。我能寫的一切到一個日誌以下面的配置,但我真的需要有兩個獨立的日誌:

logging: 
    level: 
    org.springframework.web: INFO 
    com.myorg: DEBUG 
    file: /var/log/paas/paas.log 

是沒可能的logback使用YAML和做到這一點?還是有一種替代語法,可以給我與我的DropWizard應用程序相同的結果?

+0

我有同樣的需要,你弄清楚如何得到它? –

回答

0

Spring Boot的Logback的YAML配置只允許單個文件appender。爲了配置Logback使用多個文件appender,你必須提供一個明確的logback.xmllogback-spring.xml。如果您從application.yaml文件中刪除日誌記錄confoguraiotn,然後將logback.xmllogback-spring.xml添加到運行時類路徑的根目錄中,則將從該文件配置Logback。

下面是一個例子,使用logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> 
     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>INFO</level> 
     </filter> 
     <file>/var/log/paas/console.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>/var/log/paas/console.log-%d.gz</fileNamePattern> 
      <maxHistory>7</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <pattern>...</pattern> 
     </encoder> 
    </appender> 

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>/var/log/paas/paas.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>/var/log/paas/paas.log-%d.gz</fileNamePattern> 
      <maxHistory>7</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <pattern>...</pattern> 
     </encoder> 
    </appender> 

    <root level="INFO"> 
     <appender-ref ref="INFO_FILE"/> 
     <appender-ref ref="DEBUG_FILE"/> 
    </root> 

</configuration> 
相關問題