Red Hat Training

A Red Hat training course is available for Red Hat JBoss Data Virtualization

9.2. Command Logging API

If you want to build a custom appender for command logging that will have access to java.util.logging.LogRecords to the "COMMAND_LOG" context, the handler will receive a message that is an instance of LogRecord. This object will contain a parameter of type org.teiid.logging.CommandLogMessage. The relevant Red Hat JBoss Data Virtualization classes are defined in the teiid-api-[versionNumber].jar. The CommandLogMessage includes information about VDB, session, command SQL, etc. CommandLogMessages are logged at the DEBUG level. An example follows.
package org.something;
import java.util.logging.Handler;
import java.util.logging.LogRecord;

public class CommandHandler extends Handler {
    @Override
    public void publish(LogRecord record) {
        CommandLogMessage msg = (CommandLogMessage)record.getParameters()[0];
        //log to a database, trigger an email, etc.
    }

    @Override
    public void flush() {
    }

    @Override
    public void close() throws SecurityException {
    }
}