logback 支持分模块输出,假如工程里有多个模块,可以使用每个模块的日志分一个日志文件来输出,很多情况,还会出现在这个基础上,还想按照每个用户的日志输出,这个时候可能就是用到了MDC来分割日志文件,来实现每个
用户单独一个文件,如果简单的配置会出现已经分别在每个用户文件里输出的日志,还会在模块的日志文件里再输出一遍,这样导致模块的日志很大,且易读性很差,同时也浪费空间.
这个问题在原理上理解也是比较容易理解的,因为分模块输出的策略是与分用户的策略是没有联系的,因为也得配置说分用户策略输出的日志不需要在分模块输出,logback没有这样的配置,
这样问题是需要参考每个模块一个error文件的配置如下:
<appender name="split.package.appender.error" class="ch.qos.logback.classic.sift.SiftingAppender" timeout="10 days">
<discriminator class="com.kiktech.swarm.common.log.SplitPackageFileDiscriminator"/>
<sift>
<appender name="ROLLING_FILE-${springAppName}-${swarm3}"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/${springAppName}-${swarm3}.error.log</file>
<rollingPolicy class=