Log4J - SiftingAppender-подобная функциональность

Я работаю в проекте, который используетLog4J, Одним из требований является создание отдельного файла журнала для каждого потока; сама по себе это была странная проблема, которая была отчасти упорядочена путем создания нового FileAppender на лету и присоединения его к экземпляру Logger.

Logger logger = Logger.getLogger(<thread dependent string>);
FileAppender appender = new FileAppender();
appender.setFile(fileName);
appender.setLayout(new PatternLayout(lp.getPattern()));
appender.setName(<thread dependent string>);
appender.setThreshold(Level.DEBUG);
appender.activateOptions();
logger.addAppender(appender);

Все прошло хорошо, пока мы не поняли, что другую библиотеку мы используем -Spring Framework v3.0.0 (которые используютCommons Logging) - не играет в мяч с описанной выше техникой - данные журналирования Spring «видят» только Appenders, инициализированные из файла log4.configuration, но не созданные Appenders во время выполнения. Итак, вернемся к исходной точке.

После некоторого расследования я узнал, что новый и улучшенныйLogback есть аппендиат -SiftingAppender - что делает именно то, что нам нужно, т.е. ведение журнала уровня потока на независимых файлах.

В настоящее время переход на LogBack не является вариантом, поэтому, застряв в Log4J, как я могу достичь функциональности, подобной SiftingAppender, и сохранить Spring также счастливым?

Примечание: весна используется только дляJdbcTemplate функциональность, нет МОК; для того, чтобы «зацепить» регистрацию Commons Spring в Log4J, я добавил эту строку в файл log4j.properties:

log4j.logger.org.springframework = ОТЛАДКА

как указаноВот.

Ответы на вопрос(5)

Ваш ответ на вопрос