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

Posted in Library | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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
[IE6 and IE7]

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Bookmark] Today's bookmark

[Misc] A Preview of HTML 5... header, nav, article に footer かー。
Posted in Bookmark | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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
でキャッシュをクリアすれば良いらしい。実際に試してみたところ上手く行った。感謝。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |