# To turn more verbose logging on - change "ERROR" to "WARN" or "DEBUG"

log4j.rootLogger=INFO, confluencelog, errorlog, testAppender

###
# Here we define the default appender
#
# For development, the ConsoleAppender is used, leaving the logging configuration up to the app server/IDEA.
#
# When Confluence EAR/WAR or Standalone is being built (with Tomcat 5.5 - see the maven.xml file), we replace
# the ConsoleAppender with a ConfluenceHomeLogAppender and log to the Confluence home directory.
###
log4j.appender.confluencelog=com.atlassian.confluence.logging.ConfluenceHomeLogAppender
log4j.appender.confluencelog.Threshold=DEBUG
#log4j.appender.confluencelog.File=${catalina.home}/logs/atlassian-confluence.log
log4j.appender.confluencelog.MaxFileSize=20480KB
log4j.appender.confluencelog.MaxBackupIndex=5
log4j.appender.confluencelog.layout=com.atlassian.confluence.util.PatternLayoutWithContext
log4j.appender.confluencelog.layout.ConversionPattern=%d %p [%t] [%c{4}] %M %m%n

log4j.appender.testAppender=com.atlassian.confluence.admin.actions.TestAppender
log4j.appender.testAppender.Threshold=DEBUG
log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.testAppender.layout.ConversionPattern=%m


log4j.logger.com.atlassian.confluence.core=DEBUG

log4j.logger.com.atlassian.confluence.search=DEBUG

###
# Atlassian User
###
log4j.logger.com.atlassian.user=DEBUG
log4j.logger.com.atlassian.confluence.user=DEBUG
log4j.logger.bucket.user=DEBUG
log4j.logger.com.atlassian.seraph=DEBUG
log4j.logger.com.opensymphony.user=DEBUG

###
# Attachment Migration
###
log4j.logger.com.atlassian.confluence.pages.persistence.dao=DEBUG

###
# INFO logging for startup event
###
log4j.logger.com.atlassian.confluence.lifecycle=INFO

###
# INFO logging for upgrade tasks.
###
log4j.logger.com.atlassian.confluence.upgrade=INFO

# Cluster events
log4j.logger.com.atlassian.confluence.cluster=INFO

# Cluster safety logging
log4j.logger.com.atlassian.confluence.cluster.safety=INFO

#log4j.logger.com.mchange.v2.resourcepool.BasicResourcePool=DEBUG

###
# THREAD LOCAL ERROR LOG APPENDER
###
log4j.appender.errorlog=com.atlassian.core.logging.ThreadLocalErrorLogAppender
log4j.appender.errorlog.Threshold=WARN

#log4j.logger.velocity=DEBUG

## mail jobs debugging
#log4j.logger.com.atlassian.confluence.mail.jobs=DEBUG

## lucene debugging
#log4j.logger.com.atlassian.confluence.search.lucene=DEBUG
#log4j.logger.com.atlassian.bonnie=DEBUG

# suppress WARN log statements from the ReadWriteCache class (CONF-2517)
log4j.logger.net.sf.hibernate.cache.ReadWriteCache=ERROR

# View SpacePermission cache hits and misses
#log4j.logger.com.atlassian.confluence.security=DEBUG

# Tangosol Coherence logging -- see also severity in tangosol-coherence-override.xml.
#log4j.logger.Coherence=DEBUG

#####################
# Hibernate logging #
#####################

## log hibernate prepared statements/SQL queries (equivalent to setting 'hibernate.show_sql' to 'true')
log4j.logger.net.sf.hibernate.SQL=DEBUG

## log hibernate prepared statement parameter values
log4j.logger.net.sf.hibernate.type=DEBUG

# suppress JDBCExceptionReporter warnings (there can be a few of these under DB2)
log4j.logger.net.sf.hibernate.util.JDBCExceptionReporter=ERROR

# suppress warnings from the SessionImpl (like Narrowing proxy to class com.atlassian.confluence.pages.Page - this operation breaks ==)
log4j.logger.net.sf.hibernate.impl.SessionImpl=ERROR

# suppress PDF export logs to errors only
log4j.logger.com.atlassian.confluence.importexport.impl.PdfExporter=ERROR

log4j.logger.org.apache.fop=ERROR

# suppress FileUtils (file management) warnings
log4j.logger.com.atlassian.core.util.FileUtils=ERROR

# suppress hibernate CustomType warnings
# (BlobInputStreamType is not a serializable custom type)
log4j.logger.net.sf.hibernate.type.CustomType=ERROR

#log4j.logger.bucket.search=DEBUG
#log4j.logger.org.apache.lucene.search=DEBUG
#log4j.logger.com.atlassian.confluence.search=DEBUG
#log4j.logger.com.atlassian.confluence.search.summary=INFO
#log4j.logger.com.atlassian.confluence.search.UnindexingHibernateInterceptor=DEBUG

### useful confluence classes
#log4j.logger.com.atlassian.confluence=INFO
#log4j.logger.com.atlassian.confluence.setup=DEBUG
#log4j.logger.com.atlassian.confluence.setup.actions=DEBUG
#log4j.logger.com.atlassian.confluence.util=DEBUG

### show progress building of ANCESTOR table
#log4j.logger.com.atlassian.confluence.pages.ancestors.HibernatePageAncestorManager=INFO

### hibernate caching activity
#log4j.logger.net.sf.hibernate.cache=DEBUG

### log prepared statement cache activity ###
#log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=DEBUG

### opensymphony (sitemesh, webwork, xwork)
#log4j.logger.com.opensymphony=DEBUG

### Spring
# log4j.logger.org.springframework=WARN
# log4j.logger.springframework.transaction.support.TransactionSynchronizationManager=DEBUG
# log4j.logger.com.atlassian.config.FlushingSpringSessionInViewFilterForHibernate=DEBUG

### Apache stuff
# log4j.logger.org.apache=WARN

### WIKI Engine
#log4j.logger.com.atlassian.confluence.importexport=WARN
#log4j.logger.com.atlassian.renderer=WARN

### Plugin subsystem
#log4j.logger.com.atlassian.plugin=DEBUG

# Plugins can use "atlassian.plugin" loggers across all products (Platform 2.7 requirement)
log4j.logger.atlassian.plugin=DEBUG

####
# PROFILING LOG APPENDER
###
#log4j.appender.profiling=com.atlassian.confluence.util.profiling.ProfilingLogAppender
#log4j.appender.profiling.Threshold=DEBUG
#log4j.appender.profiling.layout=org.apache.log4j.PatternLayout
#log4j.appender.profiling.layout.ConversionPattern=%d %p [%c{4}] %m%n

## Atlassian Profiling
log4j.logger.com.atlassian.util.profiling.UtilTimerStack=DEBUG

## profiling debugging
#log4j.logger.net.sf.hibernate.cache.ReadWriteCache=DEBUG
#log4j.logger.com.atlassian.config.FlushingSpringSessionInViewFilterForHibernate=DEBUG
#log4j.logger.com.atlassian.confluence.util=DEBUG
#log4j.logger.org.springframework.orm.hibernate.HibernateTransactionManager=DEBUG
#log4j.logger.com.opensymphony.oscache.web.filter=DEBUG
#log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=DEBUG
#log4j.logger.net.sf.hibernate.type=DEBUG

####
# Access log configuration
####
# Uncomment the lines below and the access log filter-mapping in web.xml to enable the logging
# You will probably want to create a new appender so that access log messages go to a different file.
#log4j.category.com.atlassian.confluence.util.AccessLogFilter=INFO

## caching debugging
#log4j.logger.com.atlassian.confluence.cache=DEBUG

## indexing debugging
#log4j.logger.com.atlassian.confluence.search.lucene=DEBUG


## Debugging these classes to find problems with PagePermissionsAcceptanceTests in Tomcat postgres cluster.
log4j.logger.com.atlassian.user.impl.cache.CachingUserManager=DEBUG
log4j.logger.com.atlassian.confluence.test.rpc.FuncTestRpcHandlerImpl=DEBUG
log4j.logger.com.atlassian.user.impl.hibernate.HibernateUserManager=DEBUG

# Debugging to troubleshoot duplicate key in BANDANA table problem
#log4j.logger.com.atlassian.hibernate.extras.ResettableTableHiLoGenerator=DEBUG

# Setting log level to DEBUG to log the stack trace if an action could not be found
log4j.logger.com.atlassian.confluence.servlet.ConfluenceServletDispatcher=DEBUG
