com.raritantechnologies.searchApp.logging
Class LoggingQueryProcessorFilter

java.lang.Object
  extended bycom.raritantechnologies.searchApp.QueryProcessorFilter
      extended bycom.raritantechnologies.searchApp.logging.LoggingQueryProcessorFilter
All Implemented Interfaces:
IQueryProcessor

public class LoggingQueryProcessorFilter
extends QueryProcessorFilter

QueryProcessorFilter that logs query parameters using an Apache Log4J Appender.

XML Configuration Template: (Note: Uses Log4J XMLConfigurator. Consult Apache Log4J documentation for log4j configuration schema)
 
 <SourceType name="loggedQueries" 
           type="QueryProcessorFilterSource"
           sourceFactoryClass = "com.raritantechnologies.searchApp.QueryProcessorFilterFactory" 
           filterClass  = "com.raritantechnologies.searchApp.logging.LoggingQueryProcessorFilter"
           inputSource  = "Filter Source"
           alternateLoginName="[ alternate login ID to use for user name ]" >

   <LoggerConfiguration loggerName="theLoggerName" >
     <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

     <appender name="theAppenderName" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="FILE PATH WHERE LOG FILE(s) GO." />
        <param name= "Append" value= "true" />
        <param name= "MaxFileSize" value= "100KB" />
        <param name= "MaxBackupIndex" value= "2" />

        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value=" %d|%m%n"/> 
        </layout>
     </appender>

     <appender name="rootAppenderName" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="FILE PATH WHERE debug messages GO." />

        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value=" %d|%m%n"/> 
        </layout>
     </appender>

     <logger name="theLoggerName" level="INFO">
       <appender-ref ref= "theAppenderName" />
     </logger>

     <root>
         <priority value ="debug" />
         <appender-ref ref="rootAppenderName" />
     </root>

     </log4j:configuration>

     <QueryResultRenderer class="com.raritantechnologies.searchApp.logging.LogRowRenderer" 
          delimiter="|" >
        <Param ID="SessionID" /> 
        <Param ID="UserName" />
        <Param ID="query" />
        <Param ID="A Taxonomy" />
     </QueryResultRenderer>

  </LoggerConfiguration>

 </SourceType>
 

Developed by Raritan Technologies .

Author:
Ted Sullivan

Field Summary
 
Fields inherited from class com.raritantechnologies.searchApp.QueryProcessorFilter
theQueryProcessor
 
Constructor Summary
LoggingQueryProcessorFilter()
           
 
Method Summary
 IResultSet executeQuery(java.lang.Integer queryID, ISearchFieldMap searchMap, SourceLoginInfo[] sources, OrderedMap inputParameters, java.lang.Integer pageSize, java.lang.Integer startRec)
          Base implementation executes the query then starts filter chain.
 java.lang.String getConfigurationXML()
           
 java.lang.String getLoggerName()
           
 IConfigurableRenderer getQueryResultRenderer()
           
 void initialize(org.w3c.dom.Element initElem)
          subclasses should override this to initialize themselves.
protected  void logQuery(java.lang.Integer queryID, SourceLoginInfo[] sources, OrderedMap inputParameters, java.lang.Integer pageSize, java.lang.Integer startRec, IResultSet results)
           
 void setLoggerName(java.lang.String loggerName)
           
 void setQueryResultRenderer(IConfigurableRenderer queryResultRenderer)
           
 
Methods inherited from class com.raritantechnologies.searchApp.QueryProcessorFilter
doExecuteQuery, filterResultSet, getQueryProcessor, getQueryProcessor, getRealSources, setNextFilter, setQueryProcessor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LoggingQueryProcessorFilter

public LoggingQueryProcessorFilter()
Method Detail

executeQuery

public IResultSet executeQuery(java.lang.Integer queryID,
                               ISearchFieldMap searchMap,
                               SourceLoginInfo[] sources,
                               OrderedMap inputParameters,
                               java.lang.Integer pageSize,
                               java.lang.Integer startRec)
                        throws QueryProcessorException
Description copied from class: QueryProcessorFilter
Base implementation executes the query then starts filter chain.

Specified by:
executeQuery in interface IQueryProcessor
Overrides:
executeQuery in class QueryProcessorFilter
Throws:
QueryProcessorException

logQuery

protected void logQuery(java.lang.Integer queryID,
                        SourceLoginInfo[] sources,
                        OrderedMap inputParameters,
                        java.lang.Integer pageSize,
                        java.lang.Integer startRec,
                        IResultSet results)

initialize

public void initialize(org.w3c.dom.Element initElem)
Description copied from class: QueryProcessorFilter
subclasses should override this to initialize themselves.

Overrides:
initialize in class QueryProcessorFilter

setLoggerName

public void setLoggerName(java.lang.String loggerName)

getLoggerName

public java.lang.String getLoggerName()

setQueryResultRenderer

public void setQueryResultRenderer(IConfigurableRenderer queryResultRenderer)

getQueryResultRenderer

public IConfigurableRenderer getQueryResultRenderer()

getConfigurationXML

public java.lang.String getConfigurationXML()