Это описано в часто задаваемых вопросах Apache Commons. ?.
да. Классы java.util.logging, присутствующие в java, начиная с версии 1.4, представляют собой как API, так и (примитивную) реализацию ведения журнала. Можно установить реализацию, которая перенаправляет сообщения обратно в commons-logging, который затем, в свою очередь, направляет вызовы в соответствующую конкретную библиотеку ведения журналов, в которую commons-logging отправляет другие сообщения.
В качестве альтернативы ваша реализация java.util.logging отправляет сообщения непосредственно той же реализации, к которой привязана функция commons-logging. Это будет быстрее, хотя, если вы измените конфигурацию ведения журналов для использования другой библиотеки ведения журналов, тогда потребуется также изменить реализацию java.util.logging.
Подробнее см. здесь:
http://wiki.apache.org/myfaces/Trinidad_and_Common_Logging
Они просто создают файл java. util.logging.Hander, чтобы адаптировать вывод JUL к ведению журнала общих ресурсов. В этом примере они, вероятно, должны обрабатывать значения int уровней журнала, которые находятся между другими именованными уровнями журнала, чтобы вы передавали любой настраиваемый уровень журнала в JUL. Пример патча:
@Override
public void publish(LogRecord record) {
Log log = getLog(record.getLoggerName());
String message = record.getMessage();
Throwable exception = record.getThrown();
int level = record.getLevel().intValue();
if (level >= Level.SEVERE.intValue()) {
log.error(message, exception);
} else if (level >= Level.WARNING.intValue()) {
log.warn(message, exception);
} else if (level >= Level.INFO.intValue()) {
log.info(message, exception);
} else if (level >= Level.CONFIG.intValue()) {
log.debug(message, exception);
} else {
log.trace(message, exception);
}
}
person
jmehrens
schedule
12.04.2017