# Uncomment to have log4j be verbose while parsing this file
log4j.debug

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
log4j.appender.CONSOLE.Threshold=INFO

# LOGFILE is set to be a RollingFileAppender appender using a TTCCLayout.
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE.layout=org.apache.log4j.TTCCLayout
log4j.appender.LOGFILE.layout.ContextPrinting=true
log4j.appender.LOGFILE.layout.DateFormat=ISO8601
log4j.appender.LOGFILE.MaxFileSize=10MB
log4j.appender.LOGFILE.MaxBackupIndex=3
log4j.appender.LOGFILE.File=scout.log

# Set root category priority to DEBUG and its appender to LOGFILE.
log4j.rootCategory=WARN, LOGFILE

# Set the Axis enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE