# LOG4J levels: OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL
#
log4j.rootLogger=DEBUG,CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#log4j.appender.CONSOLE.threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=%d %t [%5p][%c{1}] %m%n
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%5p][%c] %m%n

# Level tuning
# log4j.logger.org.eclipse.jetty=DEBUG
# log4j.logger.org.eclipse.jetty.security=DEBUG
log4j.logger.shaded.org.eclipse.aether=WARN
log4j.logger.shaded.org.apache.http=WARN
log4j.logger.org.ops4j=WARN
