问题描述
最近碰到一个很苦恼的问题,就是第三方的 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>