# Log4j configuration file.

# Available levels are DEBUG, INFO, WARN, ERROR, FATAL
log4j.rootCategory=INFO, A1, A2
# This logger will write output to a uwc-total.log file so
# that we can immediately see total conversion times without having to
# wade through the other output.
log4j.logger.totalsFileLog=INFO, A3
# This logger will create the attachments-uploaded log
#log4j.logger.attachmentsLog=INFO, A4
#log4j.additivity.attachmentsLog=false
# debug flag for the uwc package
#log4j.logger.com.atlassian.uwc=DEBUG

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] - %m%n

log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d %-5p [%t] - %m%n
log4j.appender.A2.File=uwc.log


log4j.appender.A3=org.apache.log4j.FileAppender
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d %-5p [%t] - %m%n
log4j.appender.A3.File=uwc-totals.log

log4j.appender.A4=org.apache.log4j.FileAppender
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=%m%n
log4j.appender.A4.File=uwc-attachments-uploaded.log
