package cn.dreampie.log.provider; import cn.dreampie.log.Colorer; import cn.dreampie.log.Logger; import java.util.logging.Level; /** * Created by ice on 15-1-5. */ public class JdkLoggerProvider implements LoggerProvider { public Logger getLogger(Class clazz) { return new JdkLogger(java.util.logging.Logger.getLogger(clazz.getName())); } public Logger getLogger(String clazzName) { return new JdkLogger(java.util.logging.Logger.getLogger(clazzName)); } public class JdkLogger extends Logger { private java.util.logging.Logger logger; private String clazzName; JdkLogger(java.util.logging.Logger logger) { this.logger = logger; } public void debug(String message) { logger.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.cyan(message)); } public void debug(String message, Throwable t) { logger.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.cyan(message), t); } public void debug(String message, Object... args) { logger.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.cyan(String.format(message, args))); } public void debug(String message, Throwable t, Object... args) { logger.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.cyan(String.format(message, args)), t); } public void info(String message) { logger.logp(Level.INFO, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.blue(message)); } public void info(String message, Throwable t) { logger.logp(Level.INFO, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.blue(message), t); } public void info(String message, Object... args) { logger.logp(Level.INFO, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.blue(String.format(message, args))); } public void info(String message, Throwable t, Object... args) { logger.logp(Level.INFO, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.blue(String.format(message, args)), t); } public void warn(String message) { logger.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.yellow(message)); } public void warn(String message, Throwable t) { logger.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.yellow(message), t); } public void warn(String message, Object... args) { logger.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.yellow(String.format(message, args))); } public void warn(String message, Throwable t, Object... args) { logger.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.yellow(String.format(message, args)), t); } public void error(String message) { logger.logp(Level.SEVERE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.red(message)); } public void error(String message, Throwable t) { logger.logp(Level.SEVERE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.red(message), t); } public void error(String message, Object... args) { logger.logp(Level.SEVERE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.red(String.format(message, args))); } public void error(String message, Throwable t, Object... args) { logger.logp(Level.SEVERE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), Colorer.red(String.format(message, args)), t); } public boolean isDebugEnabled() { return logger.isLoggable(Level.FINE); } public boolean isInfoEnabled() { return logger.isLoggable(Level.INFO); } public boolean isWarnEnabled() { return logger.isLoggable(Level.WARNING); } public boolean isErrorEnabled() { return logger.isLoggable(Level.SEVERE); } } }