Условная ведение журнала с LOG4J

Веб-приложение, на котором я работаю, иногда разрабатывает проблемы с целостностью данных для некоторых пользователей. Я хотел бы включить ведение журнала на уровне трассировки, но поскольку мы имеем дело с 100-х годов запросов в секунду в секунду, каждую регистрацию следов каждый запрос не имеет вопроса.

Есть ли путь с log4j, чтобы иметь возможность регистрировать условно? Другими словами, я хотел бы иметь возможность получить журналы Trace только тогда, когда конкретные пользователи делают запрос. Поскольку я не знаю заранее, какие пользователи будут затронуты, я не могу просто временно временно снимать имена пользователей.

Редактировать:

Я думаю, что мне нужно немного яснее. Я могу легко добавить условия в мои журнальные заявления. Например

Logger logger = Logger.getLogger("foo");
String usernameFilter = "piglet";
String username = request.getParameter("username");
logger.setLevel(usernameFilter.equals(username) ? Level.TRACE : Level.INFO);
if (logger.isTraceEnabled()) {
   logger.trace("blah blah blah");
}

Трудность динамически изменяет состояние, которое устанавливает уровень журнала. Другими словами, в приведенном выше примере, как я могу установить значение usernamefilter, кроме его жесткого кодирования.

20
задан Dave Isaacs 13 September 2011 в 17:35
поделиться