gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:05:38 30 4
gpt4 key购买 nike

我正在重写一个小的 DropWizard 应用程序以在 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 应用程序提供相同的结果?

最佳答案

Spring Boot 的 Logback 的 YAML 配置只允许单个文件 appender。为了配置 Logback 以使用多个文件附加器,您必须提供一个显式 logback.xmllogback-spring.xml .如果您从 application.yaml 中删除日志记录配置文件,然后添加一个 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>

关于spring-boot - 如何使用 YAML 为 Logback/Springboot 配置多个日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757437/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com