Search This Blog

Sunday, November 15, 2009

Low cost uses log4j or How to reduce the cost of calculating the priority?

Расходы на запись данных в журнал при различных конфигурациях могут отличаться, однако вычисление приоритета (LEVEL.INFO & etc) тоже является достаточно дорогой процедурой во время исполнения процесса.
Как же минимизировать расходы на вычислении приоритета?
Для этой задачи в log4j есть статические методы позволяющие выполнять вычисление приоритета:
• isEnabledFor(LEVEL.XXX);
• isDebugEnabled();
• isXXXEnabled() – где ХХХ приоритет (DEBUG, WARN & etc).


Кроме того вычисление некоторых подставных переменных выражения, при использовании PatternLayout так же могут снижать скорость выполнения записи в журнал. Согласно спецификации для класса PatternLayout это следующие переменные:
• %С – вычисление имени класса;
• %F – вычисление имени файла;
• %M – вычисление имени метода;
• %L – вычисление номера строки.
Как вариант эти данные можно вычислить самостоятельно и передать в теле сообщения.

No comments:

Post a Comment