2012-11-12 61 views
5

我有一个非常详细的类中的方法,这使得日志难以阅读。我想通过改变一个方法的级别来减少日志记录,而同一个类中的其他方法保持不变。这可能吗?我可以使用log4j在Java方法中设置日志记录级别吗?

+0

您可以声明自己的记录级别并在该方法中使用它。另一种方法是有点琐碎,并在方法中提高日志级别(通过Logger.setLevel()),但它确实很聪明 – BigMike

回答

6

您可以更改该类的级别配置,但不能更改类中的特定方法。做你想做的事的唯一方法是在该方法内使用不同的记录器,然后在不同的级别配置它。

希望这会有所帮助。

0

我不认为这是更多钞票直接改变测井方法只有一个方法

3

你不能改变在每个方法的基础上的日志记录级别。 “记录器”是控制粒度的最佳级别。通常情况下,记录器实例和类之间存在一对一的关系......尽管这取决于应用程序的编码方式。

如果您可以更改代码,我建议您为嘈杂的方法创建特殊的记录器对象,以便您可以独立于使用现有记录器的其他代码来控制它。 (或者,也许只是改变了方法的记录器调用)。

如果你不能改变的代码,你可能不得不求助于“黑客”如后处理的日志文件,或写作和配置自定义Appender抑制了不需要的日志消息。

-1

这是可能的。看到我对OP的评论。

技巧是创建一个自定义级别(小于TRACE)(如here中所述)并在非常详细的方法中使用该日志级别。

Ofc在该方法中不会使用Logger快捷方式登录方法,但应使用Logger.log(Level,Object)和Logger.log(Level,Object,Thowable)方法。

相关问题