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

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=apacheds-rolling.log

log4j.appender.R.MaxFileSize=1024KB
# Keep some backup files
log4j.appender.R.MaxBackupIndex=5

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n

log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n

# with these we'll not get innundated when switching to DEBUG
log4j.logger.org.apache.mina=WARN
log4j.logger.org.apache.directory.server.config=WARN
log4j.logger.org.apache.directory.shared.asn1=WARN
log4j.logger.org.apache.directory.shared.ldap.codec=WARN

log4j.logger.org.apache.directory.shared.ldap.name=FATAL
log4j.logger.org.apache.directory.shared.codec=FATAL
log4j.logger.org.apache.directory.server.schema.registries=FATAL
log4j.logger.org.apache.directory.shared.ldap.schema=WARN
log4j.logger.org.apache.directory.shared.ldap.ldif=WARN
log4j.logger.org.apache.directory.ldap.client.api=WARN
log4j.logger.JdbmTable=WARN
log4j.logger.JdbmIndex=WARN
log4j.logger.LOG_CHANGES=WARN
log4j.logger.org.apache.directory.server.core.partition.impl.btree.jdbm=WARN
log4j.logger.org.apache.directory.server.core.DefaultOperationManager=WARN
log4j.logger.org.apache.directory.server.core.partition.ldif=WARN
log4j.logger.org.apache.directory.server.core.security.TlsKeyGenerator=WARN
log4j.logger.org.apache.directory.shared.ldap.entry.StringValue=WARN
log4j.logger.aci-logger=WARN
log4j.logger.org.apache.directory.shared.ldap.subtree=WARN
log4j.logger.org.apache.directory.shared.ldap.aci=WARN
log4j.logger.org.apache.directory.server.xdbm.impl.avl=WARN
log4j.logger.org.apache.directory.server.ldap=WARN
log4j.logger.org.apache.activemq=WARN