logback 文件如下:
pre><?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOGS" value="./logs"/> <appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %d{ISO8601} %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) %X{serialID}: %msg%n%throwable </Pattern> </layout> </appender> <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS}/info-file.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern> </encoder> </appender> <appender name="DexLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS}/dex.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern> </encoder> </appender> <appender name="ErrorLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS}/error.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern> </encoder> </appender> <!-- LOG everything at INFO level --> <root level="info"> <appender-ref ref="Console"/> <appender-ref ref="RollingFile"/> </root> <logger name="com.ssca" level="info" additivity="false"> <appender-ref ref="DexLogFile"/> </logger> <logger name="ur.company" level="trace" additivity="false"> <appender-ref ref="Console"/> </logger> <logger name="ur.company" level="info" additivity="false"> <appender-ref ref="RollingFile"/> </logger> <logger name="ur.company" level="error" additivity="false"> <appender-ref ref="ErrorLogFile"/> </logger> </configuration>
如果没有添加
<logger name="ur.company" level="error" additivity="false"> <appender-ref ref="ErrorLogFile"/> </logger>
则 RollingFile 和 Console 的日志都能正常输出,一旦加了这三行,那两个也不输出 ur.company 包下的日志了。
1 jerry74 2020-08-25 15:14:57 +08:00 additivity="true" 这改了就好了 |
![]() | 2 git00ll 2020-08-25 17:22:29 +08:00 你配置了三个同名的[ur.company] logger,日志级别是后面的覆盖前面的,所以此日志的级别是 error 。 此 logger 配置了三个 appender-ref,是可以叠加的,所以 error 日志会输出三份到三个文件里。 所以应该不是不输出日志了,而是只输出 error 日志,楼主可以测一下 |
3 stephCurry OP @git00ll 是的,测试完是的,同名被下面覆盖了,采用方法是将三个 appender-ref 放在一个 logger 内,然后 appender 通过一下过滤 ``` <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> ``` 此方法可解决 |