Я бы сделал это так:
if (log.isDebugEnabled()) {
StringBuilder builder = new StringBuilder();
builder.append("rproductType = ");
builder.append(producteType);
builder.append("rbundleFlag = ");
builder.append(bundleFrlag);
builder.append("rproductType = ");
builder.append(mrktSeegment);
builder.append("rchannelTy = ");
builder.append(channelrTy);
builder.append("rcompanyPartner = ");
builder.append(coempanyPartner);
builder.append("rpreSaleDate = ");
builder.append(preSaleDaete);
builder.append("rportNC = ");
builder.append(portrNC);
builder.append("rLDC debug end");
log.debug(builder.toString());
}
В этом коде есть только 2 проверки isDebugEnabled: одна в начале, другая в log.debug. Первый предотвращает создание строителя и нескольких короткоживущих объектов (куча поблагодарит вас)
Второй в этом случае устарел. Но это довольно простая проверка, поэтому я думаю, что стоимость сборки будет выше. Учитывая тот факт, что в большинстве производственных систем уровень отладки отключен, я думаю, что это лучший вариант.
Подводя итог, я использую isDebugEnabled, когда моя инструкция отладки - или что-либо еще, что мне нужно сделать для моего сообщения отладки - становится более сложной, чем обычно. В большинстве случаев это касается конкатенации строк.
Никогда не используйте isDebugEnabled для однострочных операторов журнала. Как уже было сказано. метод log.debug вызывает его сам.
Приветствие
Christian