spring-boot - Spring Boot 应用程序中的 Maven 测试日志未使用配置的 Logback appender
问题描述
我有 Spring Boot 应用程序,并且正在使用 logback 进行日志记录。我在 logback 文件中定义了 STDOUT appender,它根据模式格式化日志行(附加的 logback 文件代码)。但是,当我从命令行运行“mvn clean install”时,我看不到在 spring 生成的日志上应用了相同的模式,尽管在我编写的日志上应用了相同的模式。(请参阅附加的日志)。我怀疑在幕后是其他一些 spring/maven appender 负责这种行为。
提前感谢任何线索!
“mvn clean install”生成的日志
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.856 s - in com.analytics.dao.sys.func.workflow.RecruitingWorkflowFactDaoTest
[INFO] Running com.analytics.dao.sys.func.workflow.FuncTest
22-12-2019 17:17:27.678 [main]
ERROR c.a.d.e.LogTest - This is test error
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.096 s <<< FAILURE! - in com.analytics.dao.sys.func.workflow.FuncTest
[ERROR] FuncTest Time elapsed: 1.095 s <<< ERROR!
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLException: Invalid column name 'xyz'.
### The error may exist in com.analytics/dao/mybatis/sys/maps/func/func.xml
### The error occurred while setting parameters
### SQL: DECRYPTION BY PASSWORD = 'random-pwd'
### Cause: java.sql.SQLException: Invalid column name 'xyz'.
; bad SQL grammar []; nested exception is java.sql.SQLException: Invalid column name 'xyz'.
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
logback-test.xml
<configuration>
<!-- <include resource="org/springframework/boot/logging/logback/base.xml" /> -->
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread])
%highlight(%-5level) %logger{36}.%M - %replace(%msg){"PASSWORD\s*=.*","Password=xxxxx"}%n</pattern>
</encoder>
</appender>
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
<logger name="org.springframework" additivity="false" level="ERROR">
<appender-ref ref="STDOUT" />
</logger>
<logger name="com.analytics" additivity="false" level="ERROR">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
解决方案
推荐阅读
- java - jOOQ & PostgreSQL:将从复杂 jsonb 中提取的嵌套 json 对象映射到自定义类型
- python - 读取大型 CSV 并将其拆分为更小的块
- c# - 最大化以 ElementHost 作为子项的 winform 时出现黑屏
- flutter - 使用 FlexibleSpaceBar 背景属性时 Dart '被调用的构造函数不是 const 构造函数'
- cython - Cython:为 cdef extern 函数提供来自 C++ 的类型迭代器
- c++ - 从文本文件读取到结构向量,但文本文件行的长度不同
- java - UI / VaadinSession 超时
- c# - 如何更改此着色器以使环可以显示在透明表面上?
- javascript - 如何访问内容类型字段中的字段?
- maven - Intellij IDEA 不尊重 Maven 设置