私はライブラリを作成しており、主に JMX パフォーマンス カウンターを公開するために perf4j を使用したいと考えています。
ここの指示によると、http: //perf4j.codehaus.org/devguide.html perf4j は log4j と組み合わせて使用することを意図していますが、私はライブラリを作成しているため、log4j の使用を制御できません。ライブラリのユーザーは、またはlog4jを使用したくない場合があり、これを要件にしたくありません。
perf4j を使用する方法、特に log4j を使用せずにプログラムで perf4j JMX カウンターを公開する方法はありますか?
1200 次
2 に答える
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 もサポートすることに注意してください。
于 2011-07-07T21:53:33.643 に答える
0
私はそう言うでしょう。あなたが投稿したリンクをたどったところ、最初の段落に次のように書かれていることに気付きました
一部の Perf4J ツールでは、追加の依存関係が必要です (たとえば、カスタム log4j アペンダーでは、log4j jar もクラスパスにある必要があります)。
これは、クラスパスに log4j が含まれていないのが普通のことであることを示唆しています。
于 2010-02-28T05:44:11.267 に答える