Java 自定义日志级别log4j2

Java 自定义日志级别log4j2,java,log4j2,Java,Log4j2,我正在尝试找出如何保持我的应用程序日志记录级别以进行调试,但我希望将某些包设置为错误,例如: DEBUG org.apache.kafka.clients.consumer.internals.AbstractCoordinator-向代理aaa:1067(id:-1机架:null)发送组xxx的协调器请求 这是我正在使用的log4j2.xml配置 <Configuration status="info"> <Appenders> <Cons

我正在尝试找出如何保持我的应用程序日志记录级别以进行调试,但我希望将某些包设置为错误,例如:

DEBUG org.apache.kafka.clients.consumer.internals.AbstractCoordinator-向代理aaa:1067(id:-1机架:null)发送组xxx的协调器请求

这是我正在使用的log4j2.xml配置

<Configuration status="info">
    <Appenders>
        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="stdout" additivity="false"/>
        </Root>
        <Logger name="org.apache.kafka.clients.consumer.internals" level="error">
            <AppenderRef ref="stdout"/>
        </Logger>
    </Loggers>
</Configuration>

在根记录器中使用可加性似乎有点多余或者没有必要,因为根记录器没有父级

我不确定如何配置日志记录,以便将所有日志记录保持为调试状态,但某些包除外


如果您发布的日志消息实际上是通过log4j2记录的,那么您的配置应该可以用来压缩日志消息。但是,我注意到消息的格式与配置中的模式布局非常不同。这表明您有另一个并行工作的日志系统,这就是为什么您无法使用log4j2配置影响这些消息的原因,可以将其配置为转发到log4j2。您的类路径上有哪些slf4j绑定JAR?至少我的类路径中有log4j-over-slf4j版本1.7.25,允许通过log4j 1记录的消息通过slf4j路由(即a)。对于SLF4J,您需要一个绑定jar,告诉SLF4J使用什么日志框架作为其实现。要绑定到log4j2,请参阅。另外,有关为SLF4J设置运行时绑定的一般信息,请参见(尽管log4j2绑定是由log4j发布的,而不像其他绑定那样由SLF4J发布)。是记录器的一个属性而不是追加器,是的,您是正确的,因为没有理由在根记录器上设置它。如果您发布的日志消息实际上是通过log4j2记录的,那么您的配置应该可以用于压缩该日志消息。但是,我注意到消息的格式与配置中的模式布局非常不同。这表明您有另一个并行工作的日志系统,这就是为什么您无法使用log4j2配置影响这些消息的原因,可以将其配置为转发到log4j2。您的类路径上有哪些slf4j绑定JAR?至少我的类路径中有log4j-over-slf4j版本1.7.25,允许通过log4j 1记录的消息通过slf4j路由(即a)。对于SLF4J,您需要一个绑定jar,告诉SLF4J使用什么日志框架作为其实现。要绑定到log4j2,请参阅。另外,有关为SLF4J设置运行时绑定的一般信息,请参见(尽管log4j2绑定是由log4j发布的,而不像其他绑定那样由SLF4J发布)。是记录器的一个属性,而不是appender,是的,您是正确的,因为没有理由在根记录器上设置它。