spring-boot - 使用 logback-spring.xml 时如何从属性文件中注入 Logback loglevel
问题描述
我正在使用带有 logback-spring.xml 的 Spring Boot。目前将 logback-spring.xml 中的 loglevel 定义为硬编码值。我需要从应用程序属性文件中注入这个值。
需要在属性文件中定义日志级别值 INFO/ERROR 或在 yml 中为不同的环境定义 Spring 配置文件想要以不同方式更改此日志级别。但由于某种原因,我的以下配置不起作用。
我的 logback-srping.xml 如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProperty name="myapplog" source="myapplog" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="${myapplog}" additivity="false">
<appender-ref ref="console" />
</logger>
<logger name="com.myapp.package" level="${myapplog}" additivity="false">
<appender-ref ref="console" />
</logger>
<root level="INFO">
<appender-ref ref="console" />
</root>
</configuration>
我的 application-dev.properties 将有以下条目
myapplog=信息
但是对于我的 com.myapp.package 包,logback 始终将日志级别默认为 DEBUG。
我使用 Spring Bboot 1.5.2.Release 和 logback 作为日志库。
解决方案
推荐阅读
- java - Android - An algorithm to check recursively if a map is solvable
- php - Magento 2 将自定义字体添加到电子邮件模板
- c# - 递归创建 XML 树父命名空间时丢失
- angular - ng2-smart-table 中的复选框
- amazon-redshift - 如何在框架子句redshift window_functions中将列字段指定为偏移量?
- webpack - Angular 6 将组件构建到单独的 Javascript 文件中
- c# - 更改方法后如何解决int值重置
- nuget - MyGet - 强制 nuget push 推送最新包
- graphql - 如何在保证订阅准备就绪的情况下执行突变?
- python - Python - 从 tkinter 按钮单击终止程序?