yohjizzz's Blog

I'm a Programmer.

SLF4J と Logback 。

さいきん目にする単語。
気になったので調べてみると、こんな↓ことらしい。

SLF4J (Simple Logging Facade for Java)Commons Logging の後継。

LogbackLog4j の後継。

SLF4J は様々なログ・ライブラリをラッピングするインターフェイス。LogbackLog4j の後継として SLF4J の実装を提供。

※SLF4J はもちろん Log4jJDK 1.4 (java.util.logging) もカバーしている。


参考 : http://d.hatena.ne.jp/t_yano/20070117/1169052930


以下、Commons Logging を利用するサンプルコード。

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

    private static Log log = LogFactory.getLog(Hoge.class);

    if (log.isInfoEnabled()) {
        log.info("hello !");
    }

以下、Commons Logging のログ実装に Log4j を利用する設定。

org.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.Log4jFactory


上記のコードを SLF4J に置き換えるとこんな↓感じに。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

    private static Logger logger = LoggerFactory.getLogger(Hoge.class);

    if (logger.isInfoEnabled()) {
        logger.info("hello !");
    }

ログ実装のライブラリを切り替えるには、
今までのような設定ファイルにファクトリを定義するのではなく(そーゆー方法があるかはまだわかりません。。。)、
SLF4J から配布されるバイナリ(JAR)を切り替えれば良いみたい。