メソッドログ

  • 概要
システムの障害解析では、エラーが発生したメソッドの特定に加え、メソッドに渡されたパラメータの値を知ることが重要です。本ソリューションは、指定した任意のメソッドに対して、呼び出し時に渡されたパラメータの値をログに出力します。合わせて、メソッドの実行時間も出力します。
※注意:本ソリューションは、Javaで作成されたアプリケーションにのみ導入可能です。.NETなどのJava以外のアプリケーションでは導入できません。

【ログのイメージ】 
2012/01/25 10:36:33 [main] com.genba.UserService.registerUser(arg1:USER001, arg2:東京太郎, arg3:東京都三鷹市)
2012/01/25 10:36:33 [main] com.genba.UserService.registerUser - end normally in 279msec

  • 特徴
    • 既存のプログラムに影響が無い
既存のプログラムに手を入れず、設定ファイルの変更だけで、本ソリューションを導入することができます。また、パフォーマンスに優れており、処理時間への影響はほとんどありません。

    • メソッドの実行時間も出力
メソッドの実行に要した時間を出力するため、ボトルネックの調査にも役立ちます。

    • SQLとの紐づけが容易
SQLログと組み合わせれば、メソッドの実行中に発行されたSQLとの紐づけが容易になります。

【メソッドログとSQLログを組み合わせたログのイメージ】
2012/01/25 10:36:33 [main] com.genba.UserService.registerUser(arg1:USER001, arg2:東京太郎, arg3:東京都三鷹市)
2012/01/25 10:36:33 [main] insert into t_user values('USER001','東京太郎','東京都三鷹市')  {executed in 2 msec}
2012/01/25 10:36:33 [main] com.genba.UserService.registerUser - end normally in 279msec

  • 用途
    • システムの障害解析
    • ボトルネック調査
  • 仕組み
AOP(Aspect Oriented Programming)により、コンパイル時またはクラスのロード時に、ログ出力のバイトコードを埋め込みます。


AOPの実装には、認知度の高いオープンソースのAspectJを仕様するため、信頼性があります。

  • その他
導入の際は入念なテストを実施し、既存システムに影響が無いよう責任を持って導入致します。