Improved TRACE logging of fetched records

This commit is contained in:
Lukas Eder 2013-02-16 14:08:46 +01:00
parent 62c594b43e
commit 9c68bc5e95

View File

@ -40,6 +40,8 @@ import org.jooq.ExecuteListener;
import org.jooq.ExecuteType;
import org.jooq.impl.DefaultExecuteListener;
import org.apache.log4j.Level;
/**
* A default {@link ExecuteListener} that just logs events to java.util.logging,
* log4j, or slf4j using the {@link JooqLogger}
@ -86,18 +88,26 @@ public class LoggerListener extends DefaultExecuteListener {
@Override
public void recordEnd(ExecuteContext ctx) {
if (log.isTraceEnabled() && ctx.record() != null)
log.trace("Record fetched", ctx.record());
logMultiline("Record fetched", ctx.record().toString(), Level.TRACE);
}
@Override
public void resultEnd(ExecuteContext ctx) {
if (log.isDebugEnabled() && ctx.result() != null) {
String comment = "Fetched result";
logMultiline("Fetched result", ctx.result().format(5), Level.DEBUG);
}
}
for (String line : ctx.result().format(5).split("\n")) {
private void logMultiline(String comment, String message, Level level) {
for (String line : message.split("\n")) {
if (level == Level.DEBUG) {
log.debug(comment, line);
comment = "";
}
else {
log.trace(comment, line);
}
comment = "";
}
}
}