# This file is used to format all logging output
log4j.rootLogger=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%c]: %m%n

# =============================================================================
# 3rd Party Libraries
# OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL
# =============================================================================
# ehcache caching manager:
log4j.logger.net.sf.ehcache=WARN

# Most all Apache libs:
log4j.logger.org.apache=WARN

# Quartz Enterprise Scheular (java 'cron' utility)
log4j.logger.org.quartz=WARN

# =============================================================================
# JSecurity
# =============================================================================
# JSecurity security framework
log4j.logger.org.jsecurity.realm.text.PropertiesRealm=INFO
log4j.logger.org.jsecurity.cache.ehcache.EhCache=INFO
log4j.logger.org.jsecurity.web.servlet.WebInterceptorFilter=INFO
log4j.logger.org.jsecurity.web.WebSecurityManager=INFO
log4j.logger.org.jsecurity.util.ThreadContext=INFO