質問: Axis と自分のアプリケーションを、サーブレットエンジンと同じログシステムを使うようにするにはどうすればいいのですか?

回答: 以下のことをします。

Axis 1.1、Log4j 1.2.8、Jetty 4.2-14rc1の例を挙げます。

1) log4j を含む Jetty を使用します。(例えば Jetty-4.2.14rc1-all.zip)

2) jetty-plus の機能を使えるように設定します (http://jetty.mortbay.org/jetty/plus/ にドキュメントがあります)

2a) jetty.xml を編集します。

  <Call name="instance" class="org.mortbay.util.Log">
    <Call name="disableLog"/>
    <Call name="add">
      <Arg>
        <New class="org.mortbay.util.log4j.Log4jSink">
          <Call name="start"/>
        </New>
      </Arg>
    </Call>
  </Call>

3) log4j.properties を ${jetty.home}/etc にコピーします。

4) axis.jar から log4j.properties と simplelog.properties を取り除きます。

5) Jetty を Jettyplus として起動します。

6) log4j.configuration を定義します。 - 5と6は以下のコマンドで Jetty を起動することによっても行えます。

 java -Djetty.server=org.mortbay.jetty.plus.Server -Dlog4j.configuration=log4j.properties -jar start.jar

7) WEB-INF/lib ディレクトリから log4j と commons-logging の jar ファイルも削除することができます。これはする必要はありませんが、jar にキスすることで人生が少し豊かになります。一つよりも多くの log4j が起動していることはあまり好ましくありません。

log4j.properties のカテゴリは次のようなものになります。

log4j.rootCategory=WARN, CONSOLE
log4j.logger.org.mortbay=WARN, JETTY
log4j.logger.org.apache.axis=WARN, AXIS
log4j.logger.com.mycompany=WARN, MYCOMPANY

Q: なぜ?

回答: ロギングは良いことです。正しくない設定がされたロギングにはセキュリティ的なリスクがあります。全てのロギングの設定を1箇所で行えば、正しくない設定を行うのが少し難しくなります。最大ファイルサイズとインデックスを指定してロールオーバーファイルロガーを使用すれば、一つのサーブレットエンジンインストールによって作成される、正確なサイズ制限のあるログファイルを持つことができます。ログでディスクを満杯にしたくないでしょう?

ja/axis/LogWithServletEngine (last edited 2009-09-20 22:47:37 by localhost)