Spring Boot 2:在自定义启动器中设置loglevel?

时间:2018-02-12 15:27:15

标签: spring-boot logging spring-boot-starter

是否可以将loglevel设置为自定义启动器配置的一部分?

让我们说,例如,我创建了一个自定义启动器,扩展了默认的spring-boot-starter-data-jpa。是否可以将org.hibernate的日志级别设置为WARN作为启动程序的一部分,以便使用我的自定义启动程序的每个应用程序自动继承此属性而无需从INFO切换到{{1在他们自己的属性文件中?

非常感谢!

1 个答案:

答案 0 :(得分:3)

我建议通过向包含logging.level.org.hibernate属性设置为WARN的环境添加属性源来执行此操作。

为此,您可以使用META-INF/spring.factories注册EnvironmentPostProcessor的实施。 spring.factories文件是属性文件。键是已实现接口的完全限定类名。在这种情况下,它是org.springframework.boot.env.EnvironmentPostProcessor,值应该是您的实现的完全限定名称。内容会像这样:

org.springframework.boot.env.EnvironmentPostProcessor=com.example.HibernateLoggingEnvironmentPostProcessor

EnvironmentPostProcessor实施中,您应该向PropertySource添加Environment。该属性源应包含logging.level.org.hibernate属性,其值为WARN。例如,您可以使用MapPropertySource创建的Collections.singletonMap