java 在application.yml中设置根日志记录级别

px9o7tmv  于 2023-04-19  发布在  Java
关注(0)|答案(6)|浏览(315)

我使用了一个application.properties带有Sping Boot (1.3 M1)的www.example.com,并开始将其转换为yaml文件,因为它变得越来越复杂。
但我在将其翻译成yaml时遇到了问题:

logging.level.*=WARN
logging.level.com.filenet.wcm=ERROR
logging.level.de.mycompany=DEBUG

最后两行很容易翻译成这样:

logging:
    level:
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG

但是如何添加根日志记录级别的值呢?这两种方法都失败了:
失败的方法1:

logging:
    level: WARN
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG

失败的方法2:

logging:
    level: 
        star: WARN
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG

我阅读了docs,搜索了stackoverflow并在谷歌上搜索,但没有找到有效语法的示例。

vbkedwbf

vbkedwbf1#

您可以使用ROOT配置根日志记录级别:

logging:
  level:
    ROOT: DEBUG
3j86kqsm

3j86kqsm2#

如果你想按包级别,可以使用以下语法:

logging:
  level:
     org.springframework.web: DEBUG
     guru.springframework.controllers: DEBUG
     org.hibernate: DEBUG
     org: INFO
h6my8fg2

h6my8fg23#

你甚至可以使用你的 classname 来配置日志级别:

logging:
  level:
    com.yourorganization.Yourclass: DEBUG
e1xvtsh3

e1xvtsh34#

这是一个老问题,但我刚刚遇到了这个问题。
设置时

org.springframework.web: debug

org.hibernate: debug

工作正常,如果你想为你的项目文件做同样的事情(设置每个包的级别),你必须使用通配符。所以,对于问题中的例子,它将是:

logging:
    level:
        root: WARN
        com.filenet.wcm.*: ERROR
        de.mycompany.*: DEBUG

或者,您可以设置每个类的日志记录级别,而不使用通配符,如torina的回答所示。

vaqhlq81

vaqhlq815#

您可以通过创建CommonsRequestLoggingFilter并添加

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

application.properties文件,如此链接中详细解释的-https://www.baeldung.com/spring-http-logging

@Configuration
public class RequestLoggingFilterConfig {

    @Bean
    public CommonsRequestLoggingFilter logFilter() {
        CommonsRequestLoggingFilter filter
          = new CommonsRequestLoggingFilter();
        filter.setIncludeQueryString(true);
        filter.setIncludePayload(true);
        filter.setMaxPayloadLength(10000);
        filter.setIncludeHeaders(false);
        filter.setAfterMessagePrefix("REQUEST DATA : ");
        return filter;
    }
}
krugob8w

krugob8w6#

我们可以在yml文件中配置logback属性,而无需定义自定义logback-spring.xml文件。使用以下配置来实现日志记录沿着日常滚动appender和文件大小appender。

logging:
  logback:
    rollingpolicy:
      max-file-size: 10MB
      file-name-pattern: /logs/archived/application-%d{yyyy-MM-dd}.%i.log
      max-history: 30
  file:
   name: /logs/application.log
  pattern:
    console: "%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable"
    file: "%d %-5level [%thread] %logger : %msg%n"
    level: "%5p"
  level:
    root: INFO
    com.mypackage: ERROR  (--Package level ERROR only)

相关问题