在Log4j2中,以下两种方式是否同样高效且不会在日志级别比DEBUG更特定的情况下引起任何字符串连接?是否有任何原因/情况使其中一种方式优于另一种?
log.warn(String.format("Number of cars : %d",carCount));
log.warn("Number of cars : {}",carCount );
{} 能够适用于任何类型的对象吗?
String.format
,那么它不是总会被调用吗?尽管仍然对原始问题感到好奇。 - Marvin%d
),则可能会收到异常。@BoristheSpider更正了评论。 - Darshan MehtaFomatterLogger
。它硬编码了日志格式,并可能导致昂贵的方法被急切地调用(除非与 Java 8Supplier
公式 一起使用)。最好使用简单的{}
格式,并且只传递方法调用的引用,而不是调用方法的结果。 - Boris the Spider