问题描述
最近碰到一个很苦恼的问题,就是第三方的 Jar 在自己项目里日志可以正常输出,但是一旦被引用到其他项目里,就日志死活打不出来……
解决方案
- 这是原来的配置 - logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} [%tid] [%boldYellow(%thread)] %highlight(%-5level) %boldGreen(%logger) | %msg%n"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${LOG_PATTERN}</pattern></layout></encoder></appender><root level="INFO"><appender-ref ref="STDOUT"/></root></configuration>
- 后来发现,只要在这里追加一个配置项即可,当然遇到多模块项目的话,可能每个 logback.xml 都要追加,具体原因还未找到,有大佬爬过坑的可以底下评论。
<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} [%tid] [%boldYellow(%thread)] %highlight(%-5level) %boldGreen(%logger) | %msg%n"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${LOG_PATTERN}</pattern></layout></encoder></appender><!-- 为dolphinscheduler-sdk-java-1.0.1-SNAPSHOT.jar中使用的Slf4j添加特定的配置 --><logger name="com.github.weaksloth.dolphins" level="info" additivity="false"><appender-ref ref="STDOUT"/></logger><root level="INFO"><appender-ref ref="STDOUT"/></root></configuration>