Logback - SiftingAppender 日志打印

之前做项目需要按照相关不同的业务打印到不同的文件目录中去。在logback-spring.xml中增加了相关配置

SiftingAppender 能根据一定的规则鉴别日志事件,然后委托给不同的appender完成真正的日志输出任务。

<!-- 鉴别日志事件-->
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <!--discriminator鉴别器  在该类中LogBasedDiscriminator实现相关规则->
    <discriminator class="***.LogBasedDiscriminator"/>
    <sift>
        <!--配置日志文件(File)-->
        <appender name="LOG-FILE-${loggerName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--设置格式-->
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
                <charset>UTF-8</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--日志文件输出的文件名-->
                <FileNamePattern>${LOG_HOME}/%d{yyyyMMdd}/${LOG_NAME}-%i.log</FileNamePattern>
                <!-- 单文件大小 -->
                <maxFileSize>100MB</maxFileSize>
                <!--日志文件保留天数-->
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
        </appender>
    </sift>
</appender>

 

关于 Discriminator :不指定具体class时,默认使用MDCBasedDiscriminator  

public class LogBasedDiscriminator implements Discriminator<ILoggingEvent> {


    private boolean started;
    private static final String KEY = "LOG_NAME";
    private String defaultValue = "test";

    @Override
    public String getDiscriminatingValue(ILoggingEvent iLoggingEvent) {
        //相关业务逻辑返回值return defaultValue;
    }

    @Override
    public String getKey() {
        return KEY;
    }

    @Override
    public void start() {
        started = true;
    }

    @Override
    public void stop() {
        started = false;
    }

    @Override
    public boolean isStarted() {
        return started;
    }

}

 



参考:https://www.jianshu.com/p/a33902d58530
posted @ 2022-02-24 10:04  ni当像鸟飞往你的山  阅读(350)  评论(0编辑  收藏  举报