java - 在 log4j 中过滤子类

标签 java log4j

我有一个消息驱动系统,其中包含 com.example.BaseMessagingAgent 类,它是许多消息代理的基本类。该基类记录消息事件。该基类有很多子类,实现系统不同的具体代理。让我们扩展 com.example.BaseMessagingAgent 的 com.example.MyAgent 就是其中之一。

我只想记录与 MyAgent 类相关的消息。但我不能将日志定义为:

log4j.logger.com.example.MyAgent=DEBUG, APPENDER

因为日志记录发生在父类 com.example.BasicMessagingAgent 中 - 我不会记录任何内容。

而且我也不想在基类中设置日志记录:

log4j.logger.com.example.BaseMessagingAgent=DEBUG, APPENDER

因为它会记录所有代理的事件,我会有很多不必要的日志记录。

有人知道如何将日志记录限制为仅一个子类吗?

最佳答案

您应该为 Log4j 编写一个过滤器,因为据我所知,无法将此类信息放在 log4j.properties 文件中。更多详情请访问http://books.google.it/books?id=vHvY008Zq-YC&lpg=PA95&ots=yi335bZU7z&dq=&pg=PA95#v=onepage&q&f=false

关于java - 在 log4j 中过滤子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598119/

相关文章:

Java:从多个方法中创建通用方法

java - Log4J 找不到日志记录实现

java - 如何在项目中添加log4j(用于consol)(使用hibernate和spring)

java - 如何为 Web 应用程序配置 log4j.xml?

java - 是否可以按需确定用户的组成员身份而不是在 ServerAuthModule (JASPIC) 中登录时

java - 自定义选项卡点击后消失?

java - 为什么我的 main 方法中的 shutdownhook 没有被调用?

java - 如何将 java.util.logging 发送到 log4j2?

java - 如何更改 Kafka 客户端日志记录级别/首选项?

java - 如何从数组中删除图像