title: 5.3 - Logs navPrev: 5.2-start-stop.html navPrevText: 5.2 - Starting and Stopping the server navUp: 5-administration.html navUpText: 5 - Administration navNext: 5.4-replication.html navNextText: 5.4 - Replication

5.3 - Logs

5.3.1 Logs overview

ApacheDS internally uses SLF4J as a facade for logs and Log4J is bundled in the standalone ApacheDS distributions.

Logs can be configured by modifying the log4j.properties file which can be found in the conf directory of the server instance (see the previous chapter “5.1 - Layout”).

Here is the Log4J configuration that comes with ApacheDS:

#############################################################################
#    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, F

log4j.appender.F=org.apache.log4j.RollingFileAppender
log4j.appender.F.File=${apacheds.log.dir}/apacheds.log
log4j.appender.F.MaxFileSize=100MB
log4j.appender.F.MaxBackupIndex=3
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n

# Specific loggers (useful for debugging)
#log4j.logger.jdbm.recman.BaseRecordManager=DEBUG
#log4j.logger.org.apache.directory.server.OPERATION_LOG=DEBUG
#log4j.logger.org.apache.directory.server.OPERATION_TIME=DEBUG
#log4j.logger.org.apache.directory.api.CODEC_LOG=DEBUG
#log4j.logger.org.apache.directory.server.ACI_LOG=DEBUG
#log4j.logger.org.apache.directory.server.PROVIDER_LOG=DEBUG
#log4j.logger.org.apache.directory.server.CONSUMER_LOG=DEBUG
#log4j.logger.org.apache.directory.CURSOR_LOG=DEBUG
#log4j.logger.org.apache.directory.api=DEBUG
#log4j.logger.org.apache.directory.server=DEBUG
#log4j.logger.net.sf.ehcache=DEBUG
#log4j.logger.org.apache.mina=DEBUG

5.3.2 Default log level

By default, ApacheDS ships with a default log level set to WARN as indicated in the first line of the log4j.properties file:

log4j.rootCategory=WARN, F

This value can be modified to any of the seven log levels supported by Log4J:

LevelDescription
OFFHighest possible rank and is intended to turn off logging.
FATALVery severe error events that will presumably lead the application to abort.
ERRORError events that might still allow the application to continue running.
WARNPotentially harmful situations.
INFOInformational messages that highlight the progress of the application at coarse-grained level.
DEBUGFine-grained informational events that are most useful to debug an application.
TRACEFiner-grained informational events than the DEBUG.

Please refer to the Log4J Manual for more details.

5.3.2 ApacheDS specific loggers

Bundled at the end of the log4j.properties file, are a set of specific loggers dedicated to a particular kind of events:

# Specific loggers (useful for debugging)
#log4j.logger.jdbm.recman.BaseRecordManager=DEBUG
#log4j.logger.org.apache.directory.server.OPERATION_LOG=DEBUG
#log4j.logger.org.apache.directory.server.OPERATION_TIME=DEBUG
#log4j.logger.org.apache.directory.api.CODEC_LOG=DEBUG
#log4j.logger.org.apache.directory.server.ACI_LOG=DEBUG
#log4j.logger.org.apache.directory.server.PROVIDER_LOG=DEBUG
#log4j.logger.org.apache.directory.server.CONSUMER_LOG=DEBUG
#log4j.logger.org.apache.directory.CURSOR_LOG=DEBUG
#log4j.logger.org.apache.directory.api=DEBUG
#log4j.logger.org.apache.directory.server=DEBUG
#log4j.logger.net.sf.ehcache=DEBUG
#log4j.logger.org.apache.mina=DEBUG

The table below summarizes what each specific logger does:

LoggerDescription
jdbm.recman.BaseRecordManagerLogs all information related to the JDBM database used to store the entries.
org.apache.directory.server.OPERATION_LOGLogs all executed operations (search, add, delete, etc.).
org.apache.directory.server.OPERATION_TIMELogs the time each operation takes to execute.
org.apache.directory.api.CODEC_LOGLogs all incoming and outgoing LDAP Protocol requests/responses.
org.apache.directory.server.ACI_LOGLogs all information related to the ACI system.
org.apache.directory.server.PROVIDER_LOGLogs all information related to the Replication Provider(s).
org.apache.directory.server.CONSUMER_LOGLogs all information related to the Replication Consumer(s).
org.apache.directory.CURSOR_LOGLogs all information related to the Cursors handling the search of entries in the database.
org.apache.directory.apiA general logger which logs all classes of the Apache Directory LDAP API.
org.apache.directory.serverA general logger which logs all classes of ApacheDS.
net.sf.ehcacheA general logger which logs all classes of the Ehcache API.
org.apache.minaA general logger which logs all classes of the Apache Mina API.

These loggers are deactivated by default to prevent them interfering with the root log level. Make sure to uncomment those you would like to activate (by removing the ‘#’ character in front of the line) and set the dedicated log level according to the kind of information you're looking for.