在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中编写这类日志语句的有效方法?
请参考下面的链接,了解为什么基于效率和性能,答案是首选的。
Logger slf4j advantages of formatting with {} instead of string concatenation
发布于 2020-07-15 17:58:32
是的,你也可以这样做
logger.info( "{} problem entries deleted for the Object: {}",problemCount , id );发布于 2020-07-15 18:28:10
首先:是:
简单日志外观(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 );让记录器决定是否做了更复杂的事情。
因此--例如,如果您有日志级别的警告,并且您记录了信息,则没有进行连接或任何其他评估,从而提高了后者的效率。
https://stackoverflow.com/questions/62920933
复制相似问题