简体   繁体   English

使用相同的 appender 回退多个记录器

[英]Logback several loggers with same appender

Is that possible to get several loggers working with the same appender ?是否可以让多个记录器使用同一个 appender? When i create a logback.xml like this one:当我创建一个这样的 logback.xml 时:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%-18.18thread] %highlight(%-5level) %-30.30logger - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="events.A" level="trace"><appender-ref ref="STDOUT"/></logger>
    <logger name="events.B" level="trace"><appender-ref ref="STDOUT"/></logger>
    <root level="info"/>
</configuration>

But when i do:但是当我这样做时:

    Logger loggerA = LoggerFactory.getLogger("events.A");
    Logger loggerB = LoggerFactory.getLogger("events.B");
    loggerA.trace("I am A");
    loggerB.trace("I am B");

It prints only "I am B".它只打印“我是 B”。

It that a normal behaviour ?这是正常的行为吗? is there a way to do it ?有没有办法做到这一点? I know i could only use "events" logger but i will have a lot of events and i would like to be able to switch log level of each events separately.我知道我只能使用“事件”记录器,但我会有很多事件,我希望能够分别切换每个事件的日志级别。

Having one appender with multiple loggers is not only possible but normal: in facts I usually put just one <appender-ref ref="xyz"/> tag inside the <root> tag so it is valid for all loggers.拥有一个带有多个记录器的 appender 不仅是可能的,而且是正常的:事实上,我通常只在<root>标签内放置一个<appender-ref ref="xyz"/>标签,因此它对所有记录器都有效。 Your example works fine, so check better your real config.您的示例工作正常,因此请更好地检查您的真实配置。

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

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