Fujihara)ログの実装を意識せずに、開発を進めることができる。ログの実装自体はLog4JやSDK1.4のloggingなどが使える。便利なのか?Log4jやJDKのLoggerをそのまま使うのであれば、切り替えが簡単なので便利だと思う。Loggerをプロジェクト向きにカスタマイズした場合、commons-loggingでカバーできない部分も出てくる気がする。ログの実装を意識せず開発を進めてみる。最終的にLog4jやJDK1.4のloggingを切り替えてみる。http://jakarta.apache.org/commons/logging/LogFactoryImplの起動処理commons-loggingのLogFactoryImplクラスが、どのログ実装クラスを使うかを判定している。この判定方法は以下の通り。org.apache.commons.logging.Logという属性名をもったpropertyファイルを探すorg.apache.commons.logging.Logというシステムプロパティを探すLog4Jが使えたらorg.apache.commons.logging.impl.Log4JLoggerというインスタンスを使う。ライブラリにLog4jのJarが入っているかをみているぽいJDK1.4以降だったらorg.apache.commons.logging.impl.Jdk14Loggerというインスタンスを使うその他だとorg.apache.commons.logging.impl.SimpleLogというインスタンスを使うシステムプロパティとはjavaコマンドなどで与えた引数のこと。-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLoghttp://jakarta.apache.org/commons/logging/commons-logging-1.1/apidocs/index.htmlLoggerの実装を考えずに書いてみるLoggerを決めずに書くと、実行してもログが出ない。LogFactory.getLog(CommonsLoggingTest.class.getName());log.debug("デバッグログ");これはJDK1.4のloggingが使われるのだが、「CommonsLoggingTest」はcom.daipresents...というパッケージなので、その設定が「JAVA_HOME\jre\lib\logging.properties」にないからログが出力されない。logging.propertiesに以下の設定を追加するとログが出力された。ALLcom.daipresents.level=ALLLog4jを使ってみるlibフォルダにLog4jのライブラリを入れて、クラスパスの通った場所にlog4j.xmlをおくと、log4jを使ってログ出力してくれる。JDK1.4のloggingを使ってみるクラスパスの通った場所にcommons-logging.propertiesを置く。その中で以下のように指定すれば1.4のloggingが使われる。org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Loggerこれをしなくても、Log4jのJarがなくて、JDK1.4以上をつかっていれば勝手に使われる。ソフトウェア開発の実現に向けて奮闘中。週末に娘と息子とお昼寝しながら世界のビーチや離島を旅する夢を見る。ソフトウェア開発の実現に向けて奮闘中。週末に娘と息子とお昼寝しながら世界のビーチや離島を旅する夢を見る。購読管理このバーを折りたたむ%d人のブロガーが「いいね」をつけました。