JBoss.orgCommunity Documentation
Commaand logger lets the user capture the commands that are being executed in the Teiid System at the user level as well the at the data source level. The user commands are commands that have been submitted to the system and data source commands are those that are being executed by the connectors
Users have the ability to capture command logging information in a log file, saved to a user-specified location. If a custom command logger is in use, command logging information will no longer be logged to the repository tables. Users and administrators must choose between the default logging to the Teiid Repository and custom command logging.
Command Logging is defined by interface com.metamatrix.dqp.spi.CommandLoggerSPI administrators and users can write their own Java implementation of this interface and plug it into Teiid by supplying the fully-qualified classname as the value of the metamatrix.server.commandLoggerClassname system property.
Users must also add the implementation class file to the classpath of the Teiid System. This can be done by creating a jar file, adding it to the /lib/patches directory section, and doing a full stop and restart of the server.
A user’s CommandLogger implementation may require its own property names and values. Add these name/value pairs as a semicolon-delimited list after the command logger classname property in the Teiid Console. For example, a user might need to place a value such as this into the Console system property:
com.myCode.MyClass;metamatrix.transaction.log.storeMMCMD=true;metamatrix.transaction.log.storeSRCCMD=true;myCustomProperty1=MyValue1;
The first part of this string tells Teiid what class it needs to load and instantiate. The other two parts of the string (delimited by semicolons), are a couple of name/value pairs that will be passed to the newly-instantiated Command Logger.
The system properties "metamatrix.transaction.log.storeMMCMD" and "metamatrix.transaction.log.storeSRCCMD" control whether to send the custom logger user level command and source level commands respectively.
Teiid has provided a sample implementation of the SPI that logs to a file. Supply the following text for the "metamatrix.server.commandLoggerClassname" property in the Console to enable it
com.metamatrix.dqp.spi.basic.FileCommandLogger;dqp.commandLogger.fileName=commandLogFile.txt
This means that an instance of the class FileCommandLogger will be used by the new Tracking Service implementation. The FileCommandLogger is expecting a filename property called dqp.commandLogger.fileName to be passed to it, and the value of that property is commandLogFile.txt.