#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
${symbol_pound}  Licensed to the Apache Software Foundation (ASF) under one
${symbol_pound}  or more contributor license agreements.  See the NOTICE file
${symbol_pound}  distributed with this work for additional information
${symbol_pound}  regarding copyright ownership.  The ASF licenses this file
${symbol_pound}  to you under the Apache License, Version 2.0 (the
${symbol_pound}  "License"); you may not use this file except in compliance
${symbol_pound}  with the License.  You may obtain a copy of the License at
${symbol_pound}  
${symbol_pound}         http://www.apache.org/licenses/LICENSE-2.0
${symbol_pound}         
${symbol_pound}  Unless required by applicable law or agreed to in writing,
${symbol_pound}  software distributed under the License is distributed on an
${symbol_pound}  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
${symbol_pound}  KIND, either express or implied.  See the License for the
${symbol_pound}  specific language governing permissions and limitations
${symbol_pound}  under the License.


${symbol_pound}
${symbol_pound} Isis uses log4j is used to provide system logging
${symbol_pound}
log4j.rootCategory=INFO, Console
${symbol_pound}log4j.rootCategory=DEBUG, Console


${symbol_pound} The console appender
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE}  [%-20c{1} %-10t %-5p]  %m%n


${symbol_pound} The stderr appender
log4j.appender.Stderr=org.apache.log4j.ConsoleAppender
log4j.appender.Stderr.target=System.err
log4j.appender.Stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.Stderr.layout.ConversionPattern=%d{ABSOLUTE}  [%-20c{1} %-10t %-5p]  %m%n


${symbol_pound} other appenders
log4j.appender.File=org.apache.log4j.RollingFileAppender
log4j.appender.File.file=isis.log
log4j.appender.File.append=false
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p]  %m%n

log4j.appender.sql-dml=org.apache.log4j.RollingFileAppender
log4j.appender.sql-dml.File=./logs/sql-dml.log
log4j.appender.sql-dml.Append=false
log4j.appender.sql-dml.layout=org.apache.log4j.PatternLayout
log4j.appender.sql-dml.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.appender.sql-ddl=org.apache.log4j.RollingFileAppender
log4j.appender.sql-ddl.File=./logs/sql-ddl.log
log4j.appender.sql-ddl.Append=false
log4j.appender.sql-ddl.layout=org.apache.log4j.PatternLayout
log4j.appender.sql-ddl.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.appender.sqltiming=org.apache.log4j.RollingFileAppender
log4j.appender.sqltiming.File=./logs/sqltiming.log
log4j.appender.sqltiming.Append=false
log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout
log4j.appender.sqltiming.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.appender.jdbc=org.apache.log4j.RollingFileAppender
log4j.appender.jdbc.File=./logs/jdbc.log
log4j.appender.jdbc.Append=false
log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.appender.connection=org.apache.log4j.RollingFileAppender
log4j.appender.connection.File=./logs/connection.log
log4j.appender.connection.Append=false
log4j.appender.connection.layout=org.apache.log4j.PatternLayout
log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.appender.wicket.i18n=org.apache.log4j.RollingFileAppender
log4j.appender.wicket.i18n.file=./logs/wicket-i18n.log
log4j.appender.wicket.i18n.append=false
log4j.appender.wicket.i18n.layout=org.apache.log4j.PatternLayout
log4j.appender.wicket.i18n.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p]  %m%n


${symbol_pound} publishing
log4j.appender.PublisherServiceLogging=org.apache.log4j.FileAppender
log4j.appender.PublisherServiceLogging.File=./logs/PublisherServiceLogging.log
log4j.appender.PublisherServiceLogging.Append=false
log4j.appender.PublisherServiceLogging.layout=org.apache.log4j.PatternLayout
log4j.appender.PublisherServiceLogging.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.logger.org.apache.isis.applib.services.publish.PublisherServiceLogging=DEBUG,PublisherServiceLogging
log4j.additivity.org.apache.isis.applib.services.publish.PublisherServiceLogging=false


${symbol_pound} auditing
log4j.appender.AuditerServiceLogging=org.apache.log4j.FileAppender
log4j.appender.AuditerServiceLogging.File=./logs/AuditerServiceLogging.log
log4j.appender.AuditerServiceLogging.Append=false
log4j.appender.AuditerServiceLogging.layout=org.apache.log4j.PatternLayout
log4j.appender.AuditerServiceLogging.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.logger.org.apache.isis.applib.services.audit.AuditerServiceLogging=DEBUG,AuditerServiceLogging
log4j.additivity.org.apache.isis.applib.services.audit.AuditerServiceLogging=false


${symbol_pound} threadpool
log4j.appender.ThreadPoolSupport=org.apache.log4j.FileAppender
log4j.appender.ThreadPoolSupport.File=./logs/ThreadPoolSupport.log
log4j.appender.ThreadPoolSupport.Append=false
log4j.appender.ThreadPoolSupport.layout=org.apache.log4j.PatternLayout
log4j.appender.ThreadPoolSupport.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n

log4j.logger.org.apache.isis.core.runtime.threadpool.ThreadPoolSupport=DEBUG,ThreadPoolSupport
log4j.additivity.org.apache.isis.core.runtime.threadpool.ThreadPoolSupport=false




! turn on the internal log4j debugging flag so we can see what it is doing
${symbol_pound}log4j.debug=true


${symbol_pound} DataNucleus
${symbol_pound} the first two log the DML and DDL (if set to DEBUG)
log4j.logger.DataNucleus.Datastore.Native=DEBUG, Console, sql-dml
log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console, sql-ddl
${symbol_pound}log4j.logger.DataNucleus.Datastore.Native=WARN, Console, sql-dml
${symbol_pound}log4j.logger.DataNucleus.Datastore.Schema=WARN, Console, sql-ddl
${symbol_pound} the remainder can probably be left to WARN
log4j.logger.DataNucleus.Persistence=WARN, Console
log4j.logger.DataNucleus.Transaction=WARN, Console
log4j.logger.DataNucleus.Connection=WARN, Console
log4j.logger.DataNucleus.Query=WARN, Console
log4j.logger.DataNucleus.Cache=WARN, Console
log4j.logger.DataNucleus.MetaData=WARN, Console
log4j.logger.DataNucleus.Datastore=WARN, Console
log4j.logger.DataNucleus.Datastore.Persist=WARN, Console
log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console
log4j.logger.DataNucleus.General=WARN, Console
log4j.logger.DataNucleus.Lifecycle=WARN, Console
log4j.logger.DataNucleus.ValueGeneration=WARN, Console
log4j.logger.DataNucleus.Enhancer=WARN, Console
log4j.logger.DataNucleus.SchemaTool=ERROR, Console
log4j.logger.DataNucleus.JDO=WARN, Console
log4j.logger.DataNucleus.JPA=ERROR, Console
log4j.logger.DataNucleus.JCA=WARN, Console
log4j.logger.DataNucleus.IDE=ERROR, Console

log4j.additivity.DataNucleus.Datastore.Native=false
log4j.additivity.DataNucleus.Datastore.Schema=false
log4j.additivity.DataNucleus.Datastore.Persistence=false
log4j.additivity.DataNucleus.Datastore.Transaction=false
log4j.additivity.DataNucleus.Datastore.Connection=false
log4j.additivity.DataNucleus.Datastore.Query=false
log4j.additivity.DataNucleus.Datastore.Cache=false
log4j.additivity.DataNucleus.Datastore.MetaData=false
log4j.additivity.DataNucleus.Datastore.Datastore=false
log4j.additivity.DataNucleus.Datastore.Datastore.Persist=false
log4j.additivity.DataNucleus.Datastore.Datastore.Retrieve=false
log4j.additivity.DataNucleus.Datastore.General=false
log4j.additivity.DataNucleus.Datastore.Lifecycle=false
log4j.additivity.DataNucleus.Datastore.ValueGeneration=false
log4j.additivity.DataNucleus.Datastore.Enhancer=false
log4j.additivity.DataNucleus.Datastore.SchemaTool=false
log4j.additivity.DataNucleus.Datastore.JDO=false
log4j.additivity.DataNucleus.Datastore.JPA=false
log4j.additivity.DataNucleus.Datastore.JCA=false
log4j.additivity.DataNucleus.Datastore.IDE=false


${symbol_pound} if using log4jdbc-remix as JDBC driver
${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql-dml, Console
${symbol_pound}log4j.additivity.jdbc.sqlonly=false
${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
${symbol_pound}log4j.additivity.jdbc.resultsettable=false

${symbol_pound}log4j.logger.jdbc.audit=WARN,jdbc, Console
${symbol_pound}log4j.additivity.jdbc.audit=false
${symbol_pound}log4j.logger.jdbc.resultset=WARN,jdbc
${symbol_pound}log4j.additivity.jdbc.resultset=false
${symbol_pound}log4j.logger.jdbc.sqltiming=WARN,sqltiming
${symbol_pound}log4j.additivity.jdbc.sqltiming=false
${symbol_pound}log4j.logger.jdbc.connection=FATAL,connection
${symbol_pound}log4j.additivity.jdbc.connection=false



${symbol_pound} track Isis/JDO lifecycle integration

${symbol_pound}log4j.logger.org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.FrameworkSynchronizer=DEBUG, Console
${symbol_pound}log4j.additivity.org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.FrameworkSynchronizer=false

${symbol_pound}log4j.logger.org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener=DEBUG,Console
${symbol_pound}log4j.additivity.org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener=false




${symbol_pound} track Isis/Wicket lifecycle integration

${symbol_pound}log4j.logger.org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis=DEBUG, Console
${symbol_pound}log4j.additivity.org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis=false

${symbol_pound}log4j.logger.org.apache.isis.viewer.wicket.viewer.integration.isis.IsisContextForWicket=INFO,Console
${symbol_pound}log4j.additivity.org.apache.isis.viewer.wicket.viewer.integration.isis.IsisContextForWicket=false

log4j.logger.org.apache.isis.viewer.wicket.viewer.TargetRespondListenerToResetQueryResultCache=DEBUG,Console
log4j.additivity.org.apache.isis.viewer.wicket.viewer.TargetRespondListenerToResetQueryResultCache=false



${symbol_pound} quieten some of the noisier classes in Isis' bootstrapping
log4j.logger.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=WARN,Console
log4j.additivity.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=false

log4j.logger.org.apache.isis.core.metamodel.specloader.ServiceInitializer=WARN,Console
log4j.additivity.org.apache.isis.core.metamodel.specloader.ServiceInitializer=false

log4j.logger.org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration=WARN,Console
log4j.additivity.org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration=false
    
log4j.logger.org.apache.isis.core.commons.config.IsisConfigurationDefault=INFO,Console
log4j.additivity.org.apache.isis.core.commons.config.IsisConfigurationDefault=false


log4j.logger.org.apache.isis.core.runtime.installers.InstallerLookupDefault=WARN,Console
log4j.additivity.org.apache.isis.core.runtime.installers.InstallerLookupDefault=false




${symbol_pound} quieten Shiro
log4j.logger.org.apache.shiro.realm.AuthorizingRealm=WARN,Console
log4j.additivity.org.apache.shiro.realm.AuthorizingRealm=false


${symbol_pound} Application-specific logging
log4j.logger.dom.simple.SimpleObject=DEBUG, Stderr
log4j.additivity.dom.simple.SimpleObject=false


${symbol_pound} ERROR to suppress the WARNings we get as of 1.15.0
log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,Console
log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false
