import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
public class JDKLogAppender extends AppenderSkeleton {
static Map map = new HashMap();
static Map levelMap =
new HashMap ();
static {
levelMap.put(org.apache.log4j.Level.FATAL, java.util.logging.Level.SEVERE);
levelMap.put(org.apache.log4j.Level.ERROR, java.util.logging.Level.SEVERE);
levelMap.put(org.apache.log4j.Level.WARN, java.util.logging.Level.WARNING);
levelMap.put(org.apache.log4j.Level.INFO, java.util.logging.Level.INFO);
levelMap.put(org.apache.log4j.Level.DEBUG, java.util.logging.Level.FINE);
levelMap.put(org.apache.log4j.Level.TRACE, java.util.logging.Level.FINER);
}
private Logger getLogger(String name){
Logger logger = map.get(name);
if (logger != null)
return logger;
logger = Logger.getLogger(name);
map.put(name, logger);
return logger;
}
@Override
protected void append(LoggingEvent event) {
String loggerName = event.getLoggerName();
Logger logger = getLogger(loggerName);
logger.log(levelMap.get(event.getLevel()), layout.format(event));
}
@Override
public void close() {
}
@Override
public boolean requiresLayout() {
return true;
}
}
2009年12月13日日曜日
log4j - java.util.logging bridge
log4j の出力を java.util.logging にリダイレクトするためのアペンダを書いてみた.がうまく動かなかったので,ここに捨てておく.いや,動いたには動いたのだが出力がへん.
もっといいやり方としては,slf4j を間に挟む方法があるらしい.それをやってみよう.
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿