SQL异常时, 输出可执行的SQL

SQL异常时, 输出可执行的SQL, 并是否输出可执行SQL受配置参数statementExecutableSqlLogEnable的约束
This commit is contained in:
kerry8899
2017-03-23 22:24:01 +08:00
committed by GitHub
parent c607356412
commit bbd241a654
@@ -750,8 +750,28 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM
@Override
protected void statement_executeErrorAfter(StatementProxy statement, String sql, Throwable error) {
if (this.isStatementLogErrorEnabled()) {
statementLogError("{conn-" + statement.getConnectionProxy().getId() + ", " + stmtId(statement)
if (!isStatementExecutableSqlLogEnable()) {
statementLogError("{conn-" + statement.getConnectionProxy().getId() + ", " + stmtId(statement)
+ "} execute error. " + sql, error);
}else{
int parametersSize = statement.getParametersSize();
if (parametersSize > 0) {
List<Object> parameters = new ArrayList<Object>(parametersSize);
for (int i = 0; i < parametersSize; ++i) {
JdbcParameter jdbcParam = statement.getParameter(i);
parameters.add(jdbcParam != null
? jdbcParam.getValue()
: null);
}
String dbType = statement.getConnectionProxy().getDirectDataSource().getDbType();
String formattedSql = SQLUtils.format(sql, dbType, parameters, this.statementSqlFormatOption);
statementLogError("{conn-" + statement.getConnectionProxy().getId() + ", " + stmtId(statement)
+ "} execute error. " + formattedSql, error);
}else{
statementLogError("{conn-" + statement.getConnectionProxy().getId() + ", " + stmtId(statement)
+ "} execute error. " + sql, error);
}
}
}
}