- All Implemented Interfaces:
Serializable,EventListener,ExecuteListener
ExecuteListener that just logs events to java.util.logging,
log4j, or slf4j using the JooqLogger- Author:
- Lukas Eder
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbindEnd(ExecuteContext ctx) Called after bind variables to thePreparedStatement.voidexception(ExecuteContext ctx) Called in the event of an exception at any moment of the execution lifecycle.voidexecuteEnd(ExecuteContext ctx) Called after executing a statement.voidCalled before executing a statement.voidfetchEnd(ExecuteContext ctx) Called after fetching data from aResultSet.voidoutEnd(ExecuteContext ctx) Called after fetching out parameter values from aCallableStatement.voidrecordEnd(ExecuteContext ctx) Called after fetching a record from aResultSet.voidrenderEnd(ExecuteContext ctx) Called after rendering SQL from aQueryPart.voidresultEnd(ExecuteContext ctx) Called after fetching a set of records from aResultSet.voidCalled before fetching a set of records from aResultSet.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jooq.ExecuteListener
bindStart, end, fetchStart, outStart, prepareEnd, prepareStart, recordStart, renderStart, start, transformEnd, transformStart, warning
-
Constructor Details
-
LoggerListener
public LoggerListener()
-
-
Method Details
-
renderEnd
Description copied from interface:ExecuteListenerCalled after rendering SQL from aQueryPart.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..
Overridable attributes in
ExecuteContext:ExecuteContext.sql(String): The renderedSQLstatement that is about to be executed. You can modify this statement freely.
- Specified by:
renderEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
bindEnd
Description copied from interface:ExecuteListenerCalled after bind variables to thePreparedStatement.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
Overridable attributes in
ExecuteContext:ExecuteContext.statement(PreparedStatement): TheStatement,PreparedStatement, orCallableStatementthat is about to be executed. You can modify this statement freely, or wrapExecuteContext.statement()with your enriched statement wrapper
Note that this method is not called when executing queries of type
StatementType.STATIC_STATEMENT- Specified by:
bindEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
executeStart
Description copied from interface:ExecuteListenerCalled before executing a statement.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
Overridable attributes in
ExecuteContext:ExecuteContext.statement(PreparedStatement): TheStatement,PreparedStatement, orCallableStatementthat is about to be executed. You can modify this statement freely, or wrapExecuteContext.statement()with your enriched statement wrapper
Other attributes in
ExecuteContext, affected by this lifecycle phase:ExecuteContext.statementExecutionCount()is incremented.
- Specified by:
executeStartin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
recordEnd
Description copied from interface:ExecuteListenerCalled after fetching a record from aResultSet.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
ExecuteContext.resultSet(): TheResultSetthat is about to be fetched.ExecuteContext.record(): The lastRecordthat was fetched.ExecuteContext.recordLevel(): The record nesting level, in case the upcomingExecuteContext.record()is aRowor other type of nested record. The level is also increased if a record is contained in a nestedExecuteContext.result().ExecuteContext.sqlWarning(): TheSQLWarningthat was emitted by the database ornullif no warning was emitted.
Note that this method is not called when executing queries that do not return a result, or when executing routines.
- Specified by:
recordEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
resultStart
Description copied from interface:ExecuteListenerCalled before fetching a set of records from aResultSet.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
ExecuteContext.resultSet(): TheResultSetthat is about to be fetched.ExecuteContext.result(): The set of records that are about to be fetched.ExecuteContext.resultLevel(): The result nesting level, in case the upcomingExecuteContext.result()is aDSL.multiset(TableLike)or other type of nested result.ExecuteContext.sqlWarning(): TheSQLWarningthat was emitted by the database ornullif no warning was emitted.
Executions without
ResultNot all types of execution produce results of type
Result. For example, these do not:ResultQuery.iterator()ResultQuery.stream()ResultQuery.collect(Collector)(including allCollectorbased fetches, such as e.g. aResultQuery.fetchMap(Field, Field),ResultQuery.fetchGroups(Field, Field),ResultQuery.fetchSet(Field), and all the overloads)Publisher.subscribe(Subscriber)
ExecuteListener.resultStart(ExecuteContext)event is fired.Note that this method is also not called when executing queries that do not return a result, or when executing routines. This is also not called when fetching single records, with
Cursor.fetchNext()for instance.- Specified by:
resultStartin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
resultEnd
Description copied from interface:ExecuteListenerCalled after fetching a set of records from aResultSet.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
ExecuteContext.resultSet(): TheResultSetthat is about to be fetched.ExecuteContext.record(): The lastRecordthat was fetched.ExecuteContext.result(): The set of records that were fetched.ExecuteContext.resultLevel(): The result nesting level, in case the upcomingExecuteContext.result()is aDSL.multiset(TableLike)or other type of nested result.ExecuteContext.sqlWarning(): TheSQLWarningthat was emitted by the database ornullif no warning was emitted.
Executions without
ResultNot all types of execution produce results of type
Result. For example, these do not:ResultQuery.iterator()ResultQuery.stream()ResultQuery.collect(Collector)(including allCollectorbased fetches, such as e.g. aResultQuery.fetchMap(Field, Field),ResultQuery.fetchGroups(Field, Field),ResultQuery.fetchSet(Field), and all the overloads)Publisher.subscribe(Subscriber)
ExecuteListener.resultEnd(ExecuteContext)event is fired.Note that this method is also not called when executing queries that do not return a result, or when executing routines. This is also not called when fetching single records, with
Cursor.fetchNext()for instance.- Specified by:
resultEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
fetchEnd
Description copied from interface:ExecuteListenerCalled after fetching data from aResultSet.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
Statementis already closed!- A
ExecuteContext.resultSet(): TheResultSetthat was fetched. Note that theResultSetis already closed!ExecuteContext.rows(): The number of affected rows if applicable.ExecuteContext.serverOutput(): The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()> 0ExecuteContext.record(): The lastRecordthat was fetched.ExecuteContext.result(): The last set of records that were fetched.ExecuteContext.sqlWarning(): TheSQLWarningthat was emitted by the database ornullif no warning was emitted.
In case of multiple
ResultSetswithResultQuery.fetchMany(), this is called several times, once perResultSetNote that this method is not called when executing queries that do not return a result, or when executing routines.
- Specified by:
fetchEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
executeEnd
Description copied from interface:ExecuteListenerCalled after executing a statement.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
ExecuteContext.resultSet(): TheResultSetthat is about to be fetched ornull, if theQueryreturns no result set, or if aRoutineis being executed.ExecuteContext.rows(): The number of affected rows if applicable. In case aResultSetis fetched, this number is only available at theExecuteListener.fetchEnd(ExecuteContext)event.ExecuteContext.serverOutput(): The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()> 0
Overridable attributes in
ExecuteContext:ExecuteContext.resultSet(ResultSet): TheResultSetthat is about to be fetched. You can modify this result set freely, or wrapExecuteContext.resultSet()with your enriched result set wrapper
- Specified by:
executeEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
outEnd
Description copied from interface:ExecuteListenerCalled after fetching out parameter values from aCallableStatement.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
- A
ExecuteContext.sqlWarning(): TheSQLWarningthat was emitted by the database ornullif no warning was emitted.
Note that this method is called only when executing standalone routine calls.
- Specified by:
outEndin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-
exception
Description copied from interface:ExecuteListenerCalled in the event of an exception at any moment of the execution lifecycle.Available attributes from
ExecuteContext:ExecuteContext.connection(): The connection used for executionScope.configuration(): The execution configurationExecuteContext.query(): TheQueryobject, if a jOOQ query is being executed ornullotherwiseExecuteContext.routine(): TheRoutineobject, if a jOOQ routine is being executed ornullotherwiseExecuteContext.sql(): The renderedSQLstatement that is about to be executed, ornullif theSQLstatement is unknown..ExecuteContext.statement(): ThePreparedStatementthat is about to be executed, ornullif no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatementfrom your JDBC driver when a jOOQQueryis being executed asStatementType.PREPARED_STATEMENT - A
java.sql.Statementfrom your JDBC driver wrapped in ajava.sql.PreparedStatementwhen your jOOQQueryis being executed asStatementType.STATIC_STATEMENT - A
java.sql.CallableStatementwhen you are executing a jOOQRoutine
Statementmay be closed!- A
ExecuteContext.resultSet(): TheResultSetthat was fetched ornull, if no result set was fetched. Note that theResultSetmay already be closed!ExecuteContext.rows(): The number of affected rows if applicable.ExecuteContext.serverOutput(): The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()> 0ExecuteContext.record(): The lastRecordthat was fetched or null if no records were fetched.ExecuteContext.result(): The last set of records that were fetched or null if no records were fetched.ExecuteContext.exception(): TheRuntimeExceptionthat is about to be thrownExecuteContext.sqlException(): TheSQLExceptionthat was thrown by the database
- Specified by:
exceptionin interfaceExecuteListener- Parameters:
ctx- The context containing information about the execution.
-