簡體   English   中英

是否可以在沒有log4j的情況下使用perf4j?

[英]Is it possible to use perf4j without log4j?

我正在編寫一個庫,並且想主要使用perf4j來公開JMX性能計數器。
根據此處的說明http://perf4j.codehaus.org/devguide.html perf4j旨在與log4j結合使用,但是由於我正在編寫一個庫,因此無法控制log4j的使用,該庫的用戶可能或可能不希望使用log4j,而我不想將此成為要求。
有沒有一種使用perf4j的方法,特別是以編程方式公開perf4j JMX計數器而無需使用log4j?

我的回答或多或少。 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。

我會說是的。 我點擊了您發布的鏈接,並注意到第一段內容

一些Perf4J工具需要附加的依賴關系(例如,自定義log4j附加程序要求log4j jar也位於您的類路徑中)。

對我來說,這表明在類路徑中沒有log4j是很正常的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM