在 Spring Boot 属性中设置嵌套类的日志记录级别

Bwv*_*all 5 java logging spring-boot

我正在尝试为 2 个嵌套类记录器单独设置日志记录级别,一个示例是名为的记录器:

com.package.ParentClass$LoggerOnecom.package.ParentClass$LoggerTwo。在 logback.xml 文件中为这些确切的记录器添加记录器工作正常,但在尝试为 Spring Boot 的属性组设置记录器时似乎没有任何效果logging.level

具有这些记录器的类看起来像这样:

class ParentClass {

    private static Logger logger = LoggerFactory.getLogger(ParentClass.class);

    // code that uses ParentClass logger

    class LoggerOne {

        private static Logger logger = LoggerFactory.getLogger(LoggerOne.class);

        // code that uses LoggerOne logger


    }

    class LoggerTwo {

        private static Logger logger = LoggerFactory.getLogger(LoggerTwo.class);

        // code that uses LoggerTwo logger

    }

}
Run Code Online (Sandbox Code Playgroud)

Bwv*_*all 10

在此 GitHub 问题评论中找到的解决方案是将记录器类/子类包围在[].

例子:

logging:
  level:
    com.package.[ParentClass$LoggerOne]: INFO
    com.package.[ParentClass$LoggerTwo]: ERROR
    com.package.ParentClass: DEBUG
Run Code Online (Sandbox Code Playgroud)

这允许对父类和父类中包含的任何嵌套类的日志记录级别进行细粒度控制。