package cn.jeesoft.core.utils;
import java.util.Date;
/**
* SQL日志打印
* @author king
*/
public class SQLLogger extends com.p6spy.engine.logging.appender.Log4jLogger {
public SQLLogger() {
super();
}
@Override
public void logSQL(int connectionId, String now, long elapsed,
String category, String prepared, String sql) {
// 去除多余空格
prepared = prepared.replaceAll("\\s+", " ");
sql = sql.replaceAll("\\s+", " ").trim();
// 定义输出格式
String outSql;
if (!sql.equals(prepared)) {
outSql = "[SQL] "+prepared+"\n => "+sql;
} else {
if (StringUtils.isEmpty(sql)) {
outSql = "[SQL] "+category;
} else {
outSql = "[SQL] "+sql;
}
}
// 输出日志
System.out.println(outSql);
// 不保留查询SQL
if (!sql.toUpperCase().startsWith("SELECT")) {
// 打印到文件
String time = DateUtils.format(new Date(StringUtils.toLong(now, 0)), DateUtils.FORMAT_FULL_NOSEPARATOR);
LogUtils.logFile(time+" | "+(StringUtils.isEmpty(sql) ? category : sql));
}
}
}