# Set root logger level to DEBUG and its only appender to R.
log4j.rootLogger=ERROR, R

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{hh:mm:ss,SSS}  %-14t %-14c  %m%n

# R is set to be a ConsoleAppender.
#log4j.appender.R=org.apache.log4j.ConsoleAppender

# R uses PatternLayout.
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
#log4j.appender.R.target=System.err
#log4j.appender.R.layout.ConversionPattern=%d{dd-MMM HH:MM:SS,SSS} %p %c %m%n
#log4j.appender.R.layout.ConversionPattern=%d{hh:mm:ss,SSS} %-14t %-14c  %m%n
#log4j.appender.R.layout.ConversionPattern=%d{ss,SSS}  %-12c  %m%n

log4j.logger.QueryAdapter = DEBUG
log4j.logger.PublishAdapter = DEBUG
