繁体   English   中英

如何在 logback.xml 中设置 SiftingAppender 时使用记录器

[英]how to use logger while setting SiftingAppender in logback.xml

我有这个logback配置:

<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <discriminator class="com.blackHole.programmingTrading.config.ThreadNameBasedDiscriminator"/>
    <sift>
        <appender name="FILE-${threadName}" class="ch.qos.logback.core.FileAppender">
            <file>${LOG_HOME}/app-${threadName}.log</file>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${UNION_LOG_PATTERN}</pattern>
            </layout>
        </appender>
    </sift>
</appender>

并有这个配置类:

public class ThreadNameBasedDiscriminator implements Discriminator<ILoggingEvent> {
    private static final String KEY = "threadName";
    private boolean started;

    @Override
    public String getDiscriminatingValue(ILoggingEvent iLoggingEvent) {
        return iLoggingEvent.getThreadName();
    }

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

    public void start() {
        started = true;
    }

    public void stop() {
        started = false;
    }

    public boolean isStarted() {
        return started;
    }
}

但是当我得到这样的记录器时:

LoggerFactory.getLogger(Logger.class)

或这个:

LoggerFactory.getLogger("SIFT")

siftAppender不起作用,我还有其他附加程序一起工作,那么如何处理呢?

使用相同的设置,只需使用如下所示的记录器即可完美运行;

@Component
public class SomeService {

    public void test() {
        Logger logger = LoggerFactory.getLogger(SomeService.class);
        logger.error("hey");
    }
}

然后就可以在我本地看到app-myThread.log中的日志了;

14:43:01.808 [myThread]   ERROR com.example.demo.SomeService - hey

如果您想获得一个带有其名称的记录器,则需要在logback.xml添加以下logback.xml

<logger name="mylogger" level="error">
    <appender-ref ref="SIFT"/>
</logger>

因为appender != logger ,您可以将自己的配置添加到此...

然后你就可以了;

LoggerFactory.getLogger("mylogger");

会导致日志有点不同;

14:53:23.447 [myThread]   ERROR mylogger - hey

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM