Search jakarta

Poi Utils

ロギング

POIにおけるロギング(ログ取得)は、単にデバッグ用途の機能でしかありませんで、通常のランタイムのロギングシステムとは異なります。ロギングは、自動的な鸚鵡返し式のデバッグ用のみであり、製品システム向けではオンにすべきではありません。ロギングをオンにすると、少なくとも100ものパフォーマンス減少の要因となります。POIを開発するにあらず、POIがファイルを正常に読みこまない理由を探るべくデバッグを試みるにあらずんば、ロギングをオンにするのはやめましょう。警告が出ます。

故に、我々は完全にロギングをオフに簡単に出来るようにしなければならず、また、POIが他の如何なるロギング・パッケージに依存しないようにしておかなければならないわけです。

Warning
POIは、実行時にはcommons-loggingに依存していませんが、コンパイル時には依存しています。

ロギング・概要

全てのクラスは、ログを取るためにPOILoggerを使っており、POILogFactoryのstaticメソッドを使ってログを得ています。

POILogFactoryは、デフォルトでNullLoggerを使います:システムプロパティorg.apache.poi.util.POILoggerをセットすることで、POILoggerのいかなる他の実装も使えるよう指示することができます。

Note
java -Dorg.apache.poi.util.POILogger=the.package.of.MyPoiLoggerImpl ProgramThatUsesPoi
Fixme (nicolaken)
依然としてテストが必要です・・

POILogFactory

POIないの各々のクラスは、POILogFactoryのstaticメソッドを呼ぶことで、そのPOILoggerを取得しています。

POILogger

POI内の各々のクラスは、POILoggerを使ってログを取ることが出来ます。これは、抽象クラスです。独自のロギング実装を使えるようにする事が出来ます。なぜなら:

  1. 多くの値のログを取る必要があり、プログラマを楽にする為、このクラスに多くのメソッドを入れておく必要があるため(プログラマが文字列結合の為のコードを書かなくてもすむように)
  2. ログ取得用のパッケージがなくてもPOIを使えるようにする必要があるため

3つの実装が使用可能であり、org.apache.poi.util.POILoggerをextendすることで独自のものに拡張することも出来ます。

NullLogger

全てのロギング・リクエストを破棄します

SystemOutLogger

全てのロギング・リクエストをSystem.out.に送ります

CommonsLogger

全てのロギング・リクエストをJakarta Commons Logging パッケージに送ります。JDK1.4のロギングや、log4j、logkit(訳注:Avalon関連)が使え、Jakarta Project(訳注:Commonsで)で活発に維持されているものであります。

by Nicola Ken Barozzi, Andrew C. Oliver
Original English Page would be found from HERE     --    BBS/ApacheNews
Terra-International, Inc. -- テラ・インターナショナル
Special Thanks -- 【お問い合わせ/テキスト広告】