This folder contains files which are not directly supported

log4j.properties
=============================================================================

A Log4J configuration file showing a sample configuration where the
output of the LoggingInterceptorService and PerformanceInterceptorService
are written into a separate CSV file instead of the standard logfile