16

注釈を追加するだけで変数をログに記録できるライブラリはありますか? 例えば:

    @Log
    String someValueToLog = someMethod(); 

    @Log(level="debug", prefix="Here's the value=")
    String someValueToLogAgain = someMethod(); 

これは、コードに次の行を追加するのと同様に機能します。

    log.info(someValueToLog);
    log.debug("Here's the value=" + someValueToLogAgain);
4

4 に答える 4

3

http://aspect4log.sf.netでは、メソッド呼び出し、引数、戻り値、スローされた例外をログに記録できます (例外に応じてログ レベルを変更することもできます。デフォルトでは、未チェックの例外には ERROR を使用し、チェック済みの例外には WARN を使用します)定型コードを削除し、ロギングを改善するのに大いに役立ちました。

http://loggifier.unkrig.deについても知っています- java.util.logging (誰も使用していません) を介してログを記録します。セットアップが少し複雑で、文書化も不十分ですが、大きな機能が 1 つあります。既にコンパイル済みの jar/war/ear ファイルを計測できると主張しています (これは、再コンパイルできない誰かの醜い jar をプロファイリングしたい場合に最適です)。

結論 - コードを所有している場合は、aspect4log を選択してください。コードを所有していない場合は、loggifier を使用してください。

于 2015-05-10T18:00:23.077 に答える
1

ロギングは実際のロジック内で行われ、注釈はソース コード内の特定の要素に対してのみ使用できます。これを使用して最大でログに記録できますが、ログLOCAL_VARIABLEに使用することはできませんplain statements

一般的なケースのロギング アノテーションを提供するslf4jを確認してください。

Annotation 宣言がサポートされている要素は次のとおりです。

public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,

/** Field declaration (includes enum constants) */
FIELD,

/** Method declaration */
METHOD,

/** Parameter declaration */
PARAMETER,

/** Constructor declaration */
CONSTRUCTOR,

/** Local variable declaration */
LOCAL_VARIABLE,

/** Annotation type declaration */
ANNOTATION_TYPE,

/** Package declaration */
PACKAGE

}

カスタム注釈の作成に類似

于 2012-09-04T11:48:29.913 に答える
0

Spring とアスペクト指向プログラミングを使用している場合、これは比較的簡単に実行できます。それを見てください。

于 2012-09-04T11:47:38.860 に答える