log5j

発想が面白いです
http://code.google.com/p/log5j/

getLoggerの引数にクラス名を指定しなくていい

(Log4j)

private static final Logger log = Logger.getLogger( FeedTask.class );

(Log5j)

private static final Logger log = Logger.getLogger();

コピペしたときにクラス名の指定を変更し忘れて(ry

sprintf形式のサポート

(Log4j)

log.debug( "This thing broke: " + foo + " due to bar: " + bar + " on this thing: " + car );

(Log5j)

log.debug( "This thing broke: %s due to bar: %s on this thing: %s", foo, bar, car );

前者に比べると後者の方は文字連結が無いから、if (log.isDebugEnabled()) { ... } を入れなくてもいいっていう利点がある。
もちろん、sprintfのパラメータに使う変数を文字連結する場合はifで囲まないといけないけど、それでも後者の方がパフォーマンスがいい。
String foo = "foo " + hoge;
log.debug("hello %", foo);