在项目中统一使用Sl4j日志系统,方便配合全局使用logback配置日志打印。特别是在SQL使用日志的形式输出的是,使用统一的格式方便在日志文件中查看运行的SQL。
第一步:先继承 Log 类,实现日志输出方法
public class Sl4jLog extends Log { private Logger log; Sl4jLog(Class<?> clazz) { log = LoggerFactory.getLogger(clazz.getName()); } Sl4jLog(String name) { log = LoggerFactory.getLogger(name); } public static Sl4jLog getLog(Class<?> clazz) { return new Sl4jLog(clazz); } public static Sl4jLog getLog(String name) { return new Sl4jLog(name); } @Override public void debug(String message) { log.debug(message); } @Override public void debug(String message, Throwable t) { log.debug(message, t); } @Override public void info(String message) { log.info(message); } @Override public void info(String message, Throwable t) { log.info(message, t); } @Override public void warn(String message) { log.warn(message); } @Override public void warn(String message, Throwable t) { log.warn(message, t); } @Override public void error(String message) { log.error(message); } @Override public void error(String message, Throwable t) { log.error(message, t); } @Override public void fatal(String message) { log.fatal(message, t); } @Override public void fatal(String message, Throwable t) { log.error(message, t); } @Override public boolean isDebugEnabled() { return log.isDebugEnabled(); } @Override public boolean isInfoEnabled() { return log.isInfoEnabled(); } @Override public boolean isWarnEnabled() { return log.isWarnEnabled(); } @Override public boolean isErrorEnabled() { return log.isWarnEnabled(); } @Override public boolean isFatalEnabled() { return false; } }
第二步 实现ILogFactory 接口。
public class Sl4jLogFactory implements ILogFactory { @Override public Log getLog(Class<?> clazz) { return Sl4jLog.getLog(clazz); } @Override public Log getLog(String name) { return Sl4jLog.getLog(name); } }
第三步 在配置类中 配置自定义的日志系统Sl4jLogFactory
// 设置日志系统 constants.setLogFactory(new Sl4jLogFactory());
这样一个自定的的sl4j 日志系统就配置完毕。结合 logback 就能够同一配置日志打印的格式,输出等。此方法也可以用于其它日志系统的实现。
感谢你的分享