Расходы на запись данных в журнал при различных конфигурациях могут отличаться, однако вычисление приоритета (LEVEL.INFO & etc) тоже является достаточно дорогой процедурой во время исполнения процесса.
Как же минимизировать расходы на вычислении приоритета?
Для этой задачи в log4j есть статические методы позволяющие выполнять вычисление приоритета:
• isEnabledFor(LEVEL.XXX);
• isDebugEnabled();
• isXXXEnabled() – где ХХХ приоритет (DEBUG, WARN & etc).
Кроме того вычисление некоторых подставных переменных выражения, при использовании PatternLayout так же могут снижать скорость выполнения записи в журнал. Согласно спецификации для класса PatternLayout это следующие переменные:
• %С – вычисление имени класса;
• %F – вычисление имени файла;
• %M – вычисление имени метода;
• %L – вычисление номера строки.
Как вариант эти данные можно вычислить самостоятельно и передать в теле сообщения.
Sunday, November 15, 2009
Advice for use Log4J.
Что необходимо сделать перед началом работы:
• Определите События, подлежащие записи в журнал;
• Определите ключевые Параметры, для каждого События;
• Определите Источники Событий – это самое важное, иначе ваша система логирования превратится в свалку не нужных Событий с таким же перечнем ненужных Параметров;
Как использовать инструмент:
• Не старайтесь разделить системы логирования по приоритетам (FATAL or INFO), разделите по функциональным модулям или ключевым Объектам системы;
• Выполняйте логирование жизненного цикла Объекта;
Журналирование событий это лишь часть функциональности Вашего приложения, не стоит ставить приоритет этой задачи выше приоритета основной функциональности.
• Определите События, подлежащие записи в журнал;
• Определите ключевые Параметры, для каждого События;
• Определите Источники Событий – это самое важное, иначе ваша система логирования превратится в свалку не нужных Событий с таким же перечнем ненужных Параметров;
Как использовать инструмент:
• Не старайтесь разделить системы логирования по приоритетам (FATAL or INFO), разделите по функциональным модулям или ключевым Объектам системы;
• Выполняйте логирование жизненного цикла Объекта;
Журналирование событий это лишь часть функциональности Вашего приложения, не стоит ставить приоритет этой задачи выше приоритета основной функциональности.
Subscribe to:
Comments (Atom)