spring - 如何在不是 Spring Boot 应用程序的 Spring 应用程序中激活 Spring 的内部日志记录
问题描述
在spring源代码中我看到:
boolean debug = logger.isDebugEnabled();
我该怎么做才能debug
实现?
使用 Spring Boot,如果我添加属性logging.level.root=DEBUG
,它就可以工作。但不是在春天。
解决方案
在 springboot 2.1.9.RELEASE 上测试
- 直接在配置文件中设置根日志级别
application.yml
logging:
level:
root: trace
- 在 maven 项目的资源目录下创建文件“logback.xml”。
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="false" scanPeriod="1 seconds">
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d [%thread] %-5level %logger{36} [%file : %line] - %msg%n</pattern>
</encoder>
</appender>
<root level="trace">
<appender-ref ref="stdout"/>
</root>
</configuration>
debug="true"
在配置中会输出很多有用的调试日志,比如
10:02:15,511 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/win/proj/my_web/manage/target/classes/logback.xml]
10:02:15,909 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to TRACE
10:02:15,909 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]
如果你看到下面的输出,这意味着你在Propagating
某个地方有配置日志级别,比如logging.level.root=info
application.properties
10:02:17,026 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@495b0487 - Propagating INFO level on Logger[ROOT] onto the JUL framework
推荐阅读
- hive - 无法使 Apache Superset 连接到 Presto DB(此 PrestoDB 连接到 Apache Pinot)
- reactjs - 在排序列表和原始列表 React.js 之间切换
- css - 按顺序做动画| CSS动画
- powershell - "|| exit /b" 和 "|| exit /b !errorlevel!" 之间的区别
- java - A obj = new A(new B); 是什么意思?
- amazon-web-services - 创建内联策略以通过 terraform 附加到 IAM 用户
- spring - 带有 JdbcTemplate 自动装配的 SimpleJdbcCall 的 Junit
- c++ - 如何在 C++ 中将二叉树序列化为文件
- python - ValueError:传递的项目数错误
- sqlite - 具有范围存储的 Android 11 SQLite