我正在编写一个库,希望主要使用perf4j来公开JMX性能计数器。
根据这里的说明,http://perf4j.codehaus.org/devguide.html perf4j应该与log4j一起使用,但是,由于我正在编写一个库,因此无法控制log4j的使用,库的用户可能希望也可能不希望使用log4j,因此我不想将其作为一个要求。
是否有一种方法可以使用perf4j,特别是以编程方式公开perf4j JMX计数器,而不需要使用log4j?
发布于 2011-07-07 21:53:33
我的答案或多或少。Perf4J需要在某个地方输出它的测量值,这是一个日志框架。Perf4J是为与Log4J兼容的框架工作而构建的,但您可以更改底层日志框架。例如,您可以选择使用SFL4J或。
下面是一个仅依赖于per4j的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");
}
}此代码将将度量输出到标准输出(默认的极简日志记录框架)。
start1310075342634 time171标记定时
请注意,Perf4J使用log4j配置文件并支持JMX。
发布于 2010-02-28 05:44:11
我会答应的。我看了你贴的链接,注意到第一段说
一些Perf4J工具需要额外的依赖项(例如,自定义log4j附加程序要求log4j jar也在类路径中)。
这表明在类路径中没有log4j是一件正常的事情。
https://stackoverflow.com/questions/2350161
复制相似问题