Struts2アプリのProfilingの方法

Struts2にはProfilingの仕組みが標準状態で組み込まれているのでそれを利用してインターセプターやアクションでどれだけ時間が掛っているか測定することができる。
profilingすることによって、モジュール化されていて1リクエストで複数のアクションが実行されるような場合にボトルネックを見つける助けとなる。

Profilingを有効にするには次の手順を行う。

1)struts.xmlの devModeを trueにする。
    <constant name="struts.devMode" value="true" />
 デバッグモード以外ではプロファイリングはされない。
2)profilingインターセプターを入れる。
 これは勘違いされがちだかprofilingのon/offのフラグを操作するインターセプターでprofilingそのもののメカニズムは標準状態で組み込まれている。
 ※起動パラメータなどで渡す方法をとる場合このインターセプターは不要となる。
3)log4j.properties で UtilTimerStack のログレベルをdebug以上にする。
  log4j.logger.com.opensymphony.xwork2.util.profiling.UtilTimerStack=debug
4)ブラウザからどこかのアクションを呼ぶときに profiling=trueのパラメータを渡す。
  http://www.example.com/test/index.action?profiling=true

これで、log4jのログ出力先にprofilingのログが出力される。