時代はSLF4Jでlogback
ふぅん。そうか。commons-logging+Log4Jはもう古いのか。。。
http://t100life.blog121.fc2.com/blog-entry-35.html
なんでも、Log4J 徹底解説によると、Log4Jの生みの親が、1.3の開発方針を内部で反対されたことでヤル気なくしちゃって、新たにLogbackを作り始めたのが事の経緯だとか。
ちょっと面白いなwまぁじゃあ試してみるか。
必要なもの
- slf4j-api-1.5.3.jar : SLF4Jの本体
- logback-core-0.9.9.jar : logbackの本体
- logback-classic-0.9.9.jar : logbackとslf4jのブリッジ
SLF4Jプロジェクトサイト←色々jarが入ってるから発掘する
LogBackプロジェクトサイト
サンプルコード
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogTest{ private static Logger logger = LoggerFactory.getLogger(Hoge.class); public void log(){ if (logger.isInfoEnabled()) { logger.info("hello !"); } } }
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <Target>System.out</Target> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern> </layout> </appender> <logger name="taka.of.master"> <level value="DEBUG" /> </logger> <root> <level value="INFO" /> <appender-ref ref="STDOUT" /> </root> </configuration>
commong-loggingのときと特にかわらず。何がいいのか?設定ファイルいらないってのはいいけど。
色々調べたらこんなの発見
logger.info("{}さんの年齢は{}ですね","TAKA",new Integer(25));
実行結果
TAKAさんの年齢は25歳ですね
実はこんなメソッド
public void info(String format,Object... arg);
キタコレ可変長引数。これはちょっと便利かも。ちょっと好きになったかもslf4j。
logbackはっつうと。。何かHTMLで吐くとか色々出来るみたいだがあんまりlog4jと変わらないのかな?
他にもいろいろ出来ることはあるみたい。
http://www.nurs.or.jp/~sug/soft/log4j/log4jlb.htm
今度色々調べよう。
以上。