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

标签 java log4j2 appender rollingfileappender

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

我有两个记录器:

  1. 记录器

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

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

我想在控制台中为 File logger 禁用打印消息

最佳答案

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

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

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

关于java - 在控制台中禁用自定义记录器打印 (Log4j2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24011143/

相关文章:

java - 如何在 Java 中使用带值的终端参数?

java - 如何使 Log4J2 在 JBoss EAP 6.4 中工作

logging - ClasscastException - org.apache.log4j.Logger 无法转换为 org.owasp.esapi.Logger - log4j 到 log4j2

java - Log4j2 - 创建新的日志文件

log4j - "BufferSize"在 log4j appender 中代表什么?

java - 使用扫描仪选择特定文本

java - java实现自动提醒

java - 如何在 Eclipse 中设置 log4j.properties?

java - 将数组引用分配给Java中的另一个数组

java - 如何在 Swing 应用程序中从 Logback 链接日志?