9

我在一个非常冗长的类中有一个方法,这使得日志难以阅读。我想通过仅更改该方法的级别来减少其日志记录,而使同一类中的其他方法保持不变。这可能吗?

4

4 回答 4

8

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

希望这可以帮助。

于 2012-11-12T13:00:32.530 回答
4

您不能基于每个方法更改日志记录级别。“记录器”是最精细的控制粒度级别。通常,记录器实例和类之间存在一对一的关系……尽管这取决于应用程序的编码方式。

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

如果您无法更改代码,您可能不得不求助于“hacks”,例如对日志文件进行后处理,或者编写和配置自定义Appender来抑制不需要的日志消息。

于 2012-11-12T13:02:16.840 回答
0

我不认为直接为一个方法更改日志记录方法是可能的

于 2012-11-12T13:00:51.687 回答
0

这是可能的。请参阅我对 OP 的评论。

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

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

于 2012-11-12T13:30:51.330 回答