java logger动态更改字段

时间:2011-08-23 01:54:11

标签: java logging

我需要更改我们的日志格式。

现在日志看起来像:

[Thread ID] TIME ClassName
Content

我需要在标题中添加一个字段,此字段只能在记录时确定:

[Thread ID] TIME ClassName NewField
Content

当我们需要记录某些内容时,我们想要添加一个动态变化的字段,这是一个与系统相关的信息。

我无法轻易将其移至内容的开头,因为这样,我需要更改调用logger.warning或logger.info等所有位置。

后续代码有一个共同的位置(入口点),我可以在这里设置这个新字段的值。稍后,当调用logger.warning(“XXX”)时,它可以识别该值。

我可以实现吗?

1 个答案:

答案 0 :(得分:1)

也许你可以通过继承/创建自己的LoggerLogRecordFormatter实现来实现。 Logger将获得您设置的额外字段,并在记录时添加到LogRecord。 Formatter应该在标题中包含该值。

如果 NewField 是环境中出现的问题,您可以看看是否有办法使用log4j

无论如何,你将进行重构。很可能更容易找到所有info()warn()等方法并在此处添加信息。