2017-10-15 137 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> 
相关问题