使用java.util.logging.Logger记录其他信息

时间:2010-10-06 22:23:36

标签: java logging

在我的团队中,我们有一个日志记录标准,而且大多数情况下都是

Logger.log(Level, String, [Throwable]) 

方法工作正常(它为我们提供了日志中的自动时间戳,类名,方法名,消息和可抛出信息)。但是,我们记录了一个额外的标识符,它是我们标准的一部分(我们用它来帮助监控日志)。

我的问题是我希望能够以相当轻松的方式轻松地执行此标准。起初我们创建了一个包装记录器类,但问题是你失去了Logger知道你所处的方法的好处。

void myLoggerMethod(Level level, String msg, String identifier) { 
    logger.log(level, identifier + " " + msg); 
}

将记录大部分正确的内容,但它会记录错误的方法名称。您可以使用logp解决此问题,但是您必须将方法名称作为字符串发送,并且它变得相当粗糙。

有没有一种方法可以让人们输入额外的数据来记录?是否有任何扩展机制允许这个,或者我错过的API中的某些东西?

2 个答案:

答案 0 :(得分:1)

我不完全了解您的用例,但您可以尝试实现自定义Formatter(或Handler)或者您可以扩展现有的SimpleFormatter / {{ 1}}。

答案 1 :(得分:1)

您可以通过另一种方式查看它并在IDE中设置代码模板。

例如,我将我的IDE设置为将logdebug,logerror,loginfo更改为我的日志记录的代码片段。

在我的IDE中,我输入logdebug,点击ctrl + space并将其转换为

if(logger.isDebugEnabled()){
logger.debug("xxx");}

然后我可以填写我想要的信息。