禁用控制台中的自定义日志打印 (Log4j2)

4

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

我有两个Logger:

  1. Logger

  2. 指标 Logger(将日志打印到文件中)

<Configuration status="WARN">

    <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>


</Configuration>

我想在控制台中禁用文件记录器的打印消息。

1个回答

3
关键在于理解 http://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity 根记录器是“度量”记录器的父记录器。然后,“度量”记录器的日志事件将传递到根记录器的附加程序(“STDOUT”)。这就是所谓的添加性。可以通过将“度量”记录器上的添加性属性设置为false来禁用它。
    <logger name="metrics" level="info" additivity="false">
            <AppenderRef ref="file"/>
    </logger>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接