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