Spring 启动 2:在自定义启动器中设置日志级别?
Spring Boot 2: set loglevel in custom starter?
是否可以将日志级别设置为自定义启动器配置的一部分?
比方说,我已经创建了一个扩展默认 spring-boot-starter-data-jpa 的自定义启动器。是否可以将 org.hibernate
的日志级别设置为 WARN
作为启动器的一部分,以便每个使用我的自定义启动器的应用程序自动继承它,而不必从 INFO
切换到 WARN
在他们自己的属性文件中?
非常感谢!
我建议通过向包含 logging.level.org.hibernate
属性 设置为 WARN
.
的环境添加 属性 源来执行此操作
为此,您可以使用 META-INF/spring.factories
注册 EnvironmentPostProcessor
的实现。 spring.factories
文件是一个属性文件。键是已实现接口的完全限定 class 名称。在这种情况下,它是 org.springframework.boot.env.EnvironmentPostProcessor
并且该值应该是您的实现的完全限定名称。内容大概是这样的:
org.springframework.boot.env.EnvironmentPostProcessor=com.example.HibernateLoggingEnvironmentPostProcessor
在您的 EnvironmentPostProcessor
实施中,您应该将 PropertySource
添加到 Environment
。该 属性 来源应包含一个 logging.level.org.hibernate
属性,其值为 WARN
。例如,您可以使用通过 Collections.singletonMap
.
创建的 MapPropertySource
是否可以将日志级别设置为自定义启动器配置的一部分?
比方说,我已经创建了一个扩展默认 spring-boot-starter-data-jpa 的自定义启动器。是否可以将 org.hibernate
的日志级别设置为 WARN
作为启动器的一部分,以便每个使用我的自定义启动器的应用程序自动继承它,而不必从 INFO
切换到 WARN
在他们自己的属性文件中?
非常感谢!
我建议通过向包含 logging.level.org.hibernate
属性 设置为 WARN
.
为此,您可以使用 META-INF/spring.factories
注册 EnvironmentPostProcessor
的实现。 spring.factories
文件是一个属性文件。键是已实现接口的完全限定 class 名称。在这种情况下,它是 org.springframework.boot.env.EnvironmentPostProcessor
并且该值应该是您的实现的完全限定名称。内容大概是这样的:
org.springframework.boot.env.EnvironmentPostProcessor=com.example.HibernateLoggingEnvironmentPostProcessor
在您的 EnvironmentPostProcessor
实施中,您应该将 PropertySource
添加到 Environment
。该 属性 来源应包含一个 logging.level.org.hibernate
属性,其值为 WARN
。例如,您可以使用通过 Collections.singletonMap
.
MapPropertySource