在spring-boot应用程序中过滤日志

问题描述 投票:0回答:1

在我的spring-boot应用程序的application.yml中,我有以下代码:

logging:
  file: test.log
  pattern:
    file: "%d %-5level [%thread] %logger : %msg%n"

我会写类似的东西

 logging:
   level:
    org: hibernate: *

我想过滤和收集所有级别的所有日志消息(错误,调试,信息等),而不是“test.log”中的一个特定包(org.hibernate)。有可能的?

spring spring-boot logging configuration-files app.yaml
1个回答
0
投票

是的,您可以为每个/第三个库包定义日志级别:

application.yml的示例:

# Fine-tuning a specific logger (for a single class)
 logging:
   level:
     yourpackage: INFO
     org:
        hibernate: ALL
        springframework: INFO

application.properties的示例:

# Fine-tuning a specific logger (for a single class)
logging.level.yourpackage.controllers.HomeController = INFO

# Specify the level for spring boot and hibernate's loggers
logging.level.org.springframework = INFO
logging.level.org.hibernate = ALL

更新1:仅将hibernate。*记录到日志文件中

如果只想将一个特定的Java包记录到日志文件中,请将logback.xml添加到src/main/resources文件夹并添加以下设置:

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>hibernateLogs.log</file>

    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="org.hibernate" level="ALL">
      <appender-ref ref="FILE" />
  </logger>

</configuration>

此配置会将所有hibernate日志记录到文件中。

© www.soinside.com 2019 - 2024. All rights reserved.