在项目中统一使用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 就能够同一配置日志打印的格式,输出等。此方法也可以用于其它日志系统的实现。
感谢你的分享