首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用YAML为Logback/Springboot配置多个日志文件?

如何使用YAML为Logback/Springboot配置多个日志文件?
EN

Stack Overflow用户
提问于 2017-10-16 00:42:25
回答 1查看 5.1K关注 0票数 5

我正在重写一个运行在SpringBoot上的小型DropWizard应用程序。

我的DW应用程序有以下日志配置,可以正常工作:

代码语言:javascript
运行
复制
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中使用相同的配置时,它没有任何效果。我可以使用以下配置将所有内容写入单个日志,但我真的需要有两个单独的日志:

代码语言:javascript
运行
复制
logging:
  level:
    org.springframework.web: INFO
    com.myorg: DEBUG
  file: /var/log/paas/paas.log

有没有可能用LogBack和YAML做到这一点?或者,有没有其他语法可以让我得到与DropWizard应用程序相同的结果?

EN

回答 1

Stack Overflow用户

发布于 2017-10-16 16:03:43

Spring Boot的YAML配置Logback只允许单个文件附加器。为了将Logback配置为使用多个文件附加器,您必须提供一个显式的logback.xmllogback-spring.xml。如果从application.yaml文件中删除日志配置,然后将logback.xmllogback-spring.xml添加到运行时类路径的根目录中,那么将从该文件配置Logback。

下面是一个使用logback.xml的示例

代码语言:javascript
运行
复制
<?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>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46757437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档