Является ли хорошей идеей напечатать имя метода в журнале, определив имя метода в виде строки в производственном процессе, как показано ниже?
private void foo() {
String methogTag = "foo"; // here defining method name
int updateCount = // db update operation
log.info("{} : {} record/s are updated", methogTag, updateCount);
int deleteCount = // db delete operation
log.info("{} : {} record/s are deleted", methogTag, deleteCount);
}
вывод журнала:
2019-04-22 13:24:41.572 ClazzName - foo : 20 record/s are updated
2019-04-22 13:24:41.600 ClazzName - foo : 12 record/s are deleted
Мы можем получить имя метода, напечатанное в журналах, используя %M
в log4j
шаблонном макете.
макет шаблона:
%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %c{3.}%M - %msg%n
И в документации log4j есть предупреждение
ПРЕДУПРЕЖДЕНИЕ Генерация информации о местоположении вызывающего абонента является чрезвычайно медленной и ее следует избегать, если скорость выполнения не является проблемой.
Или есть какой-нибудь альтернативный способ получить имя метода в регистраторах без каких-либо затрат памяти?
Спасибо.