10

ログが不十分またはログがない古いアプリケーションに取り組んでいます。Spring フレームワークを実装していません。
SpringなしでAspectJロギング機能を実装することは可能ですか?
はいの場合は、良いチュートリアルを教えてください。

4

4 に答える 4

10

Spring http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.htmlを使用せずにロード時間織りの使用を示す単純なアプリケーションについては、このリンクを試して ください。

必要なのは、aspectj ランタイムとウィーバー jar、および適切な構成を含む META-INF\aop.xml ファイルだけです。

春なしでaspectj ltwを使用する方法の詳細については、リンクも参照して ください http://www.eclipse.org/aspectj/doc/next/devguide/ltw.html

于 2012-10-16T11:01:26.577 に答える
4

Spring(またはlog4j)なしでaspectjを使用して、aspectjでサポートされている任意の参加ポイントでメッセージをログに記録できます。

例えば、

public aspect ListAllMethodExecution {
    private int callDepth; 

    private pointcut executionJoinPoints(): !within(ListAllMethodExecution) && execution (* *.*(..));

    before(): executionJoinPoints(){
        print("Before call " + thisJoinPoint);
        callDepth++;
    }

    after(): executionJoinPoints(){
        callDepth--;
        print("After call " + thisJoinPoint);
    }

    private void print(String s){
        for(int i=0; i<callDepth; i++)
            System.out.print("    ");
        System.out.println(s);
    }
}

ポイントカット式を変更して、特定のイベントまたは関心のあるその他の静的結合ポイントに関する特定のパッケージからログを記録できます。また、ログをリダイレクトする場合は、printメソッドを変更できます。

必要に応じて、ロード時またはコンパイル時のウィービングを使用できます。お役に立てれば。

于 2012-08-14T06:46:55.963 に答える
0

たぶん、この OpenSource が役に立ちます。https://code.google.com/p/perfspy/ . これは、ランタイム ロギング、パフォーマンス モニタリング、およびコード検査ツールです。ApsectJ を使用して、実行時にアプリケーション コードを織り込み、すべてのメソッドの実行時間とその入力パラメーターと値をログに記録します。メソッド呼び出しとその入力値および戻り値をツリーとして表示できる UI アプリケーションがあります。これにより、パフォーマンスのボトルネックを特定し、複雑なコード フローを理解できます。

于 2013-08-19T07:29:32.280 に答える