# 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=DEBUG

# 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=512MB
log4j.appender.LOGFILE.MaxBackupIndex=3
log4j.appender.LOGFILE.File=scout.log

# Set root category priority to DEBUG and its appender to LOGFILE.
log4j.rootCategory=DEBUG, LOGFILE

# Set the Axis enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE