在org.slf4j.Logger中显示以下详细信息的最佳方法是什么?

时间:2020-07-15 17:51:25

标签: java logging slf4j

在org.slf4j.Logger中显示以下详细信息的最佳方法是什么

logger.info(problemCount + " problem entries deleted for the Object: " + id );

这是信息,我想显示这些更详细的信息一段时间,以通过查看日志来解决问题。

我知道有些参考资料表明应该使用内置的字符串格式而不是像下面这样的字符串连接

logger.info(String.format("%d problem entries deleted for the Object: %s ",problemCount, id));

是否存在一种使用org.slf4j.Logger在Java中编写此类日志语句的有效方法?

有关效率和性能的原因,请参考下面的链接,了解为什么首选 answer

Logger slf4j advantages of formatting with {} instead of string concatenation

2 个答案:

答案 0 :(得分:3)

是的,您也可以这样做

logger.info( "{} problem entries deleted for the Object: {}",problemCount , id );

答案 1 :(得分:0)

首先:SLF4J是:

Java的简单日志记录外观(SLF4J)充当各种日志记录框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架。

SLF4J 的背后实际上是实现,或多或少地提高了效率。

但是,使用占位符{}的全部目的是,在记录器决定是否记录任何内容之前,没有进行任何评估。

如果您这样子:

logger.info(problemCount + " problem entries deleted for the Object: " + id );

始终进行字符串连接。

但是这样做:

logger.info( "{} problem entries deleted for the Object: {}",problemCount , id );

让记录器决定是否进行任何串联操作或进行更复杂的操作。

因此-例如-如果您具有日志级别警告,并且您登录了信息,则不会进行级联或进行任何其他评估,从而使后者更加有效。

相关问题