我正在使用 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/