Можно ли использовать perf4j без log4j? - PullRequest
1 голос
/ 28 февраля 2010

Я пишу библиотеку и хотел бы использовать perf4j в основном для предоставления счетчиков производительности JMX.
В соответствии с приведенными здесь инструкциями http://perf4j.codehaus.org/devguide.html perf4j предназначен для использования в сочетании с log4j, однако, поскольку яЯ пишу библиотеку. Я не имею никакого контроля над использованием log4j, пользователи библиотеки могут или не могут использовать log4j, и я не хочу делать это требованием.
Есть ли способ использовать perf4j, специально разоблачитьСчетчики perf4j JMX программно не требуют использования log4j?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Мой ответ более или менее. Perf4J должен где-то вывести свои измерения, а это где-то - каркас регистрации. Perf4J создан для работы с Log4J-совместимыми средами, но вы можете изменить базовую среду ведения журналов. Например, вместо этого вы можете использовать SFL4J или Commons Logging.

Вот пример, который зависит только от банки perf4j:

import org.perf4j.LoggingStopWatch;
import org.perf4j.StopWatch;

public class Perf4JEx {
    public static void main (String[] args) {
        StopWatch stopWatch = new LoggingStopWatch();
        // for demo purposes just sleep
        Thread.sleep(170);
        stopWatch.stop("timing");
    }
}

Этот код выведет результаты измерений на стандартный вывод (стандартная структура минималистического каротажа).

начало [1310075342634] время [171] тег [хронометраж]

Обратите внимание, что Perf4J использует файлы конфигурации log4j, а также поддерживает JMX.

0 голосов
/ 28 февраля 2010

Я бы сказал, да. Я перешел по ссылке, которую вы разместили, и заметил, что в первом абзаце написано

Некоторые инструменты Perf4J требуют дополнительные зависимости (например, пользовательские приложения log4j требуют jar log4j также будет в вашем классам).

Это наводит меня на мысль, что отсутствие log4j в вашем classpath - нормальная вещь.

...