java - Log4j2:重定向类及其调用链的日志记录语句

标签 java log4j2

我正在使用 SQS 处理库,它轮询 SQS 队列中的消息并调用我定义的处理程序。我想将其所有日志语句(以及其调用链中的日志语句)重定向到一个单独的日志文件中。

我在 log4j2 配置文件中定义了一个新的附加程序 - 并将其添加到记录器配置中 -

    <Logger name="com.my.sqs.handler" level="DEBUG" additivity="false">
        <AppenderRef ref="SQSCONSUMER" level="DEBUG"/>
    </Logger>

但我不知道如何将 SQSHandler 调用链中调用的对象的所有日志语句重定向到 SQSCONSUMER 日志 - 我该怎么做?

最佳答案

每次调用处理程序时,您都可以在 Log4j2 ThreadContext 中放入一些键值对。

这为您提供了多种选择:有一个 RoutingAppender,它可以将具有某些 ThreadContext 键的日志事件转发到一个附加程序,并将其他日志事件转发到另一个附加程序。您还可以使用根据上下文数据(包含您设置的键)接受或拒绝日志事件的过滤器。

关于java - Log4j2:重定向类及其调用链的日志记录语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206962/

相关文章:

java - 迭代器设计模式?

java - 为什么我会出现无法调用类布局.XmlLayout 中的工厂方法?

java - 在 log4j 2 中使用 throwable 和参数

maven - 从 log4j2 到 slf4j 的桥接

java - switch 结构可以嵌套在 (if-else ) 结构中,反之亦然吗?

java - 从 JTextPane 中删除最后一个字符

java - 在 java 中创建 Base64 字符串时内存不足?

java - log4j2 中的 BasicConfigurator 替换

java - 将 Log4j PatternLayout 扩展转换为 Log4j2

java - Ebean + ManyToMany 加入