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 Mapmap = 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 件のコメント:
コメントを投稿