2009-02-18 1 views
3

В Java 5 появилось множество функций, которые могут приводить к сокращению количества операторов регистрации, таких как переменное количество аргументов и printf. Это может облегчить весь код построения сообщения, который происходит, когда что-то регистрируется, а также окружающие if.Существует ли расширение log4j или commons или другая структура ведения журнала, предназначенная для Java 5 или выше?

Например, вместо:

if (log.isDebugEnabled() 
{ 
    log.debug("User id: "+uid+", Request id:" 
    + rid +", Client IP: "+ip+" blah blah blah"); 
} 

Я хотел бы написать:

log.debug("User id: %s, Request id: %s, Client IP: %s blah blah blah", 
uid, rid, ip); 

или что-то подобное.

Знаете ли вы структуру ведения журнала или расширение для рамки ведения журнала, которая может помочь в этом?

ответ

1

Для этого достаточно написать собственные методы обертки.

2

Simple Logging Facade for Java (SLF4J)

Простой Logging Facade для Java или (SLF4J) предназначен для использования в качестве простого фасада для различного лесозаготовительного API, позволяющего конечного пользователю подключить желаемой осуществления на время развертывания. SLF4J также поддерживает устаревшие API-интерфейсы , а также инструмент миграции исходного кода .

SLF4J API предлагает продвинутую абстракции различных лесозаготовок систем, в том числе JDK 1.4 лесозаготовок, log4j и Logback. Особенности включают в себя параметризованный журнал и поддержку MDC.

Пример: "Привет, мир!"

logger.info("{} {}!", "Hello", "world"); 

производит но только если включен информационный уровень.

+0

У SLF4J нет оператора журнала переменных, как и запросы OP. (Только 1 и 2 аргумента, остальные - Object [] – krosenvold

+0

Хммм, правда. Я так и не понял. (Ошибка для этой проблемы: http://bugzilla.slf4j.org/show_bug.cgi?id=31) –

Смежные вопросы