在控制台中禁用自定义记录器打印(Log4j2)

时间:2014-06-03 09:05:55

标签: java log4j2 appender rollingfileappender

我们可以为某些自定义创建Logger的可用日志打印吗?

我有两个记录器:

  1. 记录器

  2. 指标记录器(打印到文件

  3. <Appenders>
        <File name="file" fileName="app.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
            </PatternLayout>
        </File>
    
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    
    
    </Appenders>
    
    <Loggers>
    
        <logger name="metrics" level="info" additivity="true">
            <AppenderRef ref="file"/>
        </logger>      
    
        <root level="info">
            <AppenderRef ref="STDOUT"/>
        </root>
    
    </Loggers>
    

    我想在控制台中为文件记录器

    禁用打印消息

1 个答案:

答案 0 :(得分:0)

理解的关键在这里 http://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity

根记录器是记录器“metrics”的父级。然后将“metrics”的日志事件传递给root logger的appender(“STDOUT”)。这被称为可加性。可以通过将记录器“metrics”上的additivity属性设置为false来禁用它。

<logger name="metrics" level="info" additivity="false">
        <AppenderRef ref="file"/>
</logger>