Dec 26, 2007
[Library] Commons Logging 1.1.1 で Log4j の trace レベルを有効にする。
(2008/01/25) 致命的な間違いのため訂正
桜が咲く頃にふと想ふ さんの 「Commons Loggin + Log4jでTRACEレベルのログを出力CommentsAdd Star」 で、本エントリが根本的に間違っていることを指摘いただいた。ありがとうございます。
Commons Logging 1.1.1 + Log4j 1.2.12 で一切カスタマイズ無しで普通に Trace ログを出力できた。
ソースコード でも確認済み。
・・・カスタマイズしたときに見たソースコードは一体何だったのだろう??
お詫びして訂正致します。取消線が入っている情報は間違っています。信じないで下さい。
Commons Logging 1.1.1 から Log4j を使用する場合、デフォルトでは Commons Logging の trace ログレベルは Log4j の debug ログレベルに対応付けられる。
Log4j では永らく trace ログレベルがサポートされていなかったので当然こういう実装になるだろう。
Log4j 1.2.12 で trace ログレベルがサポートされたのだけれど、残念ながら Commons Logging では未対応の様だ。
というわけで、自力で Commons Logging の trace ログレベルを Log4j の trace ログレベルに対応付けてみた。
- Apache Logging Services
- http://logging.apache.org/
- ASF Bugzilla Bug 35711 Add TRACE level to 1.2 api
- http://issues.apache.org/bugzilla/show_bug.cgi?id=35711
- Apache Commons - Commons Logging
- http://commons.apache.org/logging/
Commons Logging の設定
Commons Logging と Log4j の橋渡しは Log4JLogger というクラスが行っているので、Log4JLogger を拡張して差し替える。
Log4JLogger の拡張クラス
package jp.in_vitro.codelet.logging; import org.apache.commons.logging.impl.Log4JLogger; import org.apache.log4j.Logger; public class TracableLogger extends Log4JLogger { public TracableLogger() { super(); } public TracableLogger(final Logger logger) { super(logger); } public TracableLogger(final String name) { super(name); } @Override public boolean isTraceEnabled() { Logger logger = getLogger(); return logger.isTraceEnabled(); } @Override public void trace(final Object message, final Throwable t) { Logger logger = getLogger(); logger.trace(message, t); } @Override public void trace(final Object message) { Logger logger = getLogger(); logger.trace(message); } }
Commons Logging の設定ファイル
クラスパスのルートに "commons-logging.properties" を作成する。
org.apache.commons.logging.Log=jp.in_vitro.codelet.logging.TracableLogger
[Bookmark] Today's bookmark
[Apple] Mac OS X 10.5: Developer preview of Java SE 6 for Leopard available from the Apple Developer Connection... そろそろ Leopard に入れ替えないとな。Dec 05, 2007
[Misc] IE6 と IE7 の同居にチャレンジ
チャレンジも何も。 やり方を丁寧に説明してくれているサイトがあったのでその通りやってみただけ。 Altstack さん、TredoSoft さん、Microsoft さん(?) に感謝。
- IE6とIE7の同居と、Windowsでwebkit(Safari)の表示確認
- http://www.altstack.com/weblog/archives/2007/03/28/index.php
- Windows XP SP2 向け Windows Internet Explorer 7
- http://www.microsoft.com/downloads/details.aspx?FamilyId=9AE91EBE-3385-447C-8A30-081805B2F90B&displaylang=ja
- Internet Explorer 7 running side by side with IE6. (standalone)
- http://tredosoft.com/IE7_standalone
Dec 04, 2007
[Apple] /private/etc/hosts の変更内容がすぐに反映されない
Mac OS X で /private/etc/hosts を変更しても、変更内容がすぐに反映されないことがある。 調べてみたら
- osxでetchostsをすぐに反映させる方法
- http://ido.nu/kuma/2007/03/23/osxでetchostsをすぐに反映させる方法/
でキャッシュをクリアすれば良いらしい。実際に試してみたところ上手く行った。感謝。$ sudo lookupd -flushcache



