是否可以使用perf4j而不使用log4j?

时间:2010-02-28 05:13:07

标签: java performance log4j perf4j

我正在编写一个库,并希望使用perf4j来主要公开JMX性能计数器 根据这里的说明http://perf4j.codehaus.org/devguide.html perf4j应该与log4j一起使用,但是由于我正在编写一个库,我无法控制log4j的使用,因此库的用户可能希望也可能不希望使用log4j和我不想要这个要求 有没有办法使用perf4j,专门以编程方式公开perf4j JMX计数器而不需要使用log4j?

2 个答案:

答案 0 :(得分:1)

我的回答或多或少。 Perf4J需要在某处输出其测量值,而这在某处是一个日志记录框架。 Perf4J可与Log4J兼容框架一起使用,但您可以更改底层日志框架。例如,您可以选择使用SFL4J或Commons Logging。

这是一个仅依赖于perf4j jar的样本:

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。

答案 1 :(得分:0)

我会说是的。我按照你发布的链接注意到第一段说

  

一些Perf4J工具需要   其他依赖项(例如,   自定义log4j appenders需要   log4j jar也在你的   类路径)。

这表明我没有在你的类路径中使用log4j是正常的事情。