From 1d5d1a6a4a0a58d6bb4803527dacb6641c027816 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 28 Jan 2014 13:34:12 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 :    Migrate I18n and logging support to i18n framework and SLF4J

---
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java                          |   17 
 opendj3-server-dev/replace.rb                                                                                                      |   84 
 opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java                                        |   21 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/UpdateOperationTest.java                       |    2 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java                                                           |   43 
 opendj3-server-dev/src/server/org/opends/server/replication/server/StatusAnalyzer.java                                             |   39 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java                                        |    9 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java                                |   39 
 opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java                                          |   16 
 opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java                                                         |   18 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java                                         |   30 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeLog.java                                                      |   10 
 opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java                                                   |   14 
 opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java                                    |   19 
 opendj3-server-dev/src/server/org/opends/server/types/InvokableMethod.java                                                         |   18 
 opendj3-server-dev/src/server/org/opends/server/types/LDIFImportConfig.java                                                        |   23 
 opendj3-server-dev/src/server/org/opends/server/controls/PersistentSearchControl.java                                              |   14 
 opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java                                  |   30 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java                      |   60 
 opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java                                          |   19 
 opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java                                                      |  188 
 opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java                                                |   18 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java                                            |    2 
 opendj3-server-dev/src/server/org/opends/server/types/ByteStringBuilder.java                                                       |   15 
 opendj3-server-dev/src/server/org/opends/server/types/ObjectClass.java                                                             |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalClientConnection.java                                   |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiConnector.java                                                    |   75 
 opendj3-server-dev/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java                                         |   18 
 opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java                                                  |   78 
 opendj3-server-dev/src/server/org/opends/server/tools/SSLConnectionFactory.java                                                    |   31 
 opendj3-server-dev/src/server/org/opends/server/core/SchemaConfigManager.java                                                      |  208 
 opendj3-server-dev/src/server/org/opends/server/monitors/BackendMonitor.java                                                       |   15 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java                                           |    8 
 opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java                                          |   43 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPWriter.java                                                              |   26 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPSearch.java                                                              |   58 
 opendj3-server-dev/src/server/org/opends/server/admin/ClassLoaderProvider.java                                                     |   40 
 opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java                                                          |   26 
 opendj3-server-dev/src/server/org/opends/server/tasks/SetGenerationIdTask.java                                                     |   17 
 opendj3-server-dev/src/server/org/opends/server/controls/GetEffectiveRightsRequestControl.java                                     |   13 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java                              |   23 
 opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTask.java                                                          |   17 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java                                              |    9 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/BuildInformation.java                                                      |   12 
 opendj3-server-dev/src/server/org/opends/server/api/EntryCache.java                                                                |   19 
 opendj3-server-dev/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/util/TimeThread.java                                                               |   14 
 opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java                                           |   19 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ServerReader.java                                               |   33 
 opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1InputStreamReader.java                                          |   43 
 opendj3-server-dev/src/server/org/opends/server/replication/protocol/Session.java                                                  |   28 
 opendj3-server-dev/src/server/org/opends/server/extensions/CancelExtendedOperation.java                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/replication/server/MonitoringPublisher.java                                        |   28 
 opendj3-server-dev/src/server/org/opends/server/types/DITStructureRule.java                                                        |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java                                      |    8 
 opendj3-server-dev/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java                                    |   23 
 opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java                                            |   15 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java                           |    9 
 opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java                                           |   49 
 opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerSync.java                                                      |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java                                       |    8 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/SchemaReplicationTest.java                     |    2 
 opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java                                        |   43 
 opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java                                    |   19 
 opendj3-server-dev/src/server/org/opends/server/tasks/RebuildTask.java                                                             |   29 
 opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java                                                         |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java                                        |   49 
 opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java                                                              |   38 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java                       |   25 
 opendj3-server-dev/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java                                        |   19 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/components/BinaryCellPanel.java                                |   11 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java                                      |    8 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/FileManager.java                                                      |   21 
 opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV1Control.java                                                 |   14 
 opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java                                          |   46 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java                                           |  129 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeTasks.java                                                    |   55 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java                                                |  107 
 opendj3-server-dev/src/server/org/opends/server/types/BackupInfo.java                                                              |   13 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ServerController.java                                                 |   49 
 opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationTrustManager.java                                                  |   24 
 opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java                                         |   10 
 opendj3-server-dev/src/server/org/opends/server/tasks/ImportTask.java                                                              |   39 
 opendj3-server-dev/src/server/org/opends/server/api/VirtualAttributeProvider.java                                                  |   58 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java                                                   |   49 
 opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java                                                  |   43 
 opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java                                      |   41 
 opendj3-server-dev/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java                                          |   33 
 opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java                                                                  |   16 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java                                                    |   61 
 opendj3-server-dev/src/server/org/opends/server/types/Entry.java                                                                   |   89 
 opendj3-server-dev/src/server/org/opends/server/core/ModifyOperationBasis.java                                                     |   26 
 opendj3-server-dev/src/server/org/opends/server/extensions/HasSubordinatesVirtualAttributeProvider.java                            |   23 
 opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java                                                                    |   27 
 opendj3-server-dev/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java                              |   24 
 opendj3-server-dev/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java                                      |   19 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java                                |    9 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReSyncTest.java                                |   11 
 opendj3-server-dev/src/server/org/opends/server/core/IdleTimeLimitThread.java                                                      |   26 
 opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java                                                 |   15 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ApplicationPrintStream.java                                  |   11 
 opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java                                                        |  267 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java                         |   38 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java |   11 
 opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTargetTask.java                                                    |   17 
 opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java                                                  |   45 
 opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java                                           |   14 
 opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java                                                      |   13 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java                                                  |   20 
 opendj3-server-dev/src/server/org/opends/server/controls/PasswordExpiringControl.java                                              |   14 
 opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java                                        |   33 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/GroupIdHandshakeTest.java               |   11 
 opendj3-server-dev/src/server/org/opends/server/util/cli/ConsoleApplication.java                                                   |   32 
 opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java                                     |   24 
 opendj3-server-dev/src/ads/org/opends/admin/ads/TopologyCache.java                                                                 |   33 
 opendj3-server-dev/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java                                           |  106 
 opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/DNS.java                                                  |   15 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java                                                         |   56 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java                                         |   10 
 opendj3-server-dev/src/server/org/opends/server/extensions/DiskSpaceMonitor.java                                                   |   28 
 opendj3-server-dev/src/server/org/opends/server/config/StringConfigAttribute.java                                                  |   18 
 opendj3-server-dev/src/server/org/opends/server/extensions/TripleDESPasswordStorageScheme.java                                     |   28 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java                                                      |  186 
 opendj3-server-dev/src/server/org/opends/server/util/LDIFReader.java                                                               |  115 
 opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java                                                |   26 
 opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java                                           |   16 
 opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java                                                        |   10 
 opendj3-server-dev/src/server/org/opends/server/extensions/VirtualStaticGroup.java                                                 |   14 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java                                           |   86 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java          |   11 
 opendj3-server-dev/src/server/org/opends/server/replication/server/LightweightServerHandler.java                                   |   16 
 opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java                                                  |   14 
 opendj3-server-dev/src/server/org/opends/server/tasks/PurgeConflictsHistoricalTask.java                                            |   16 
 opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java                                                     |  112 
 opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java                                                          |   13 
 opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java                                          |   19 
 opendj3-server-dev/src/server/org/opends/server/backends/MemoryBackend.java                                                        |   34 
 opendj3-server-dev/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java                                     |   43 
 opendj3-server-dev/src/server/org/opends/server/replication/protocol/HeartbeatThread.java                                          |   49 
 opendj3-server-dev/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java                                              |   36 
 opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicySubentryVirtualAttributeProvider.java                     |   20 
 opendj3-server-dev/src/server/org/opends/server/types/MatchingRuleUse.java                                                         |   13 
 opendj3-server-dev/src/server/org/opends/server/api/DebugLogPublisher.java                                                         |   50 
 opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java                                                 |   52 
 opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternDN.java                                            |   18 
 opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java                                             |   14 
 opendj3-server-dev/src/server/org/opends/server/types/AbstractOperation.java                                                       |   19 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java              |    9 
 opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java                                      |   22 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java                                          |   64 
 opendj3-server-dev/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java                                            |   18 
 opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java                                         |   15 
 opendj3-server-dev/src/server/org/opends/server/types/ByteString.java                                                              |   10 
 opendj3-server-dev/src/server/org/opends/server/controls/AccountUsableResponseControl.java                                         |   14 
 opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java                                                      |  109 
 opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java                                |   29 
 opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1OutputStreamWriter.java                                         |   83 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java                   |   11 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CliUserInteraction.java                                                    |    9 
 opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java                                                          |   32 
 opendj3-server-dev/src/server/org/opends/server/replication/server/SafeDataExpectedAcksInfo.java                                   |   19 
 opendj3-server-dev/src/server/org/opends/server/types/RawModification.java                                                         |   28 
 opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java                                                          |  230 
 opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java                                                    |   14 
 opendj3-server-dev/src/server/org/opends/server/types/SortKey.java                                                                 |   18 
 opendj3-server-dev/src/ads/org/opends/admin/ads/util/ServerLoader.java                                                             |   32 
 opendj3-server-dev/src/server/org/opends/server/util/MultiOutputStream.java                                                        |   35 
 opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPClientConnection.java                                           |   22 
 opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java                                  |   43 
 opendj3-server-dev/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java                                     |   22 
 opendj3-server-dev/src/server/org/opends/server/extensions/TLSByteChannel.java                                                     |   14 
 opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java                                           |   39 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/CertificateDialog.java                                                  |   21 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java                                              |   14 
 opendj3-server-dev/src/server/org/opends/server/types/Schema.java                                                                  |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java                                         |    8 
 opendj3-server-dev/src/server/org/opends/server/config/ConfigEntry.java                                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/loggers/debug/DebugTracer.java                                                     |  172 
 opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerThread.java                                               |   20 
 opendj3-server-dev/src/server/org/opends/server/replication/plugin/EntryHistorical.java                                            |   13 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java                                                            |    8 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java                                          |    8 
 opendj3-server-dev/src/server/org/opends/server/types/LockManager.java                                                             |   22 
 opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java                                                     |  128 
 opendj3-server-dev/src/server/org/opends/server/core/AuthenticatedUsers.java                                                       |   19 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CurrentInstallStatus.java                                                  |    9 
 opendj3-server-dev/src/server/org/opends/server/replication/protocol/ErrorMsg.java                                                 |   14 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java                        |    2 
 opendj3-server-dev/src/server/org/opends/server/core/AddOperationBasis.java                                                        |   20 
 opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV2Control.java                                                 |   14 
 opendj3-server-dev/src/server/org/opends/server/core/ModifyDNOperationBasis.java                                                   |   31 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java                                                              |   44 
 opendj3-server-dev/src/server/org/opends/server/replication/common/LastCookieVirtualProvider.java                                  |   11 
 opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java                                                              |   14 
 opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java                                                  |   23 
 opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java                                                        |   14 
 opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java                                           |   14 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java                                |    2 
 opendj3-server-dev/src/server/org/opends/server/types/RDN.java                                                                     |   18 
 opendj3-server-dev/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java                                           |   12 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPFilter.java                                                     |   18 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetup.java                                                         |   14 
 opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStack.java                                                 |   15 
 opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java                                                |   33 
 opendj3-server-dev/src/server/org/opends/server/core/BindOperationBasis.java                                                       |   20 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPModify.java                                                              |   83 
 opendj3-server-dev/src/server/org/opends/server/extensions/SASLContext.java                                                        |   87 
 opendj3-server-dev/src/server/org/opends/server/extensions/RC4PasswordStorageScheme.java                                           |   28 
 opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java                                            |   13 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java                                                     |   13 
 opendj3-server-dev/src/server/org/opends/server/types/RawAttribute.java                                                            |   28 
 opendj3-server-dev/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java                                 |   14 
 opendj3-server-dev/src/server/org/opends/server/types/BackupDirectory.java                                                         |   28 
 opendj3-server-dev/src/server/org/opends/server/protocols/http/CollectClientConnectionsFilter.java                                 |   16 
 opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java                                                    |   14 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java                                 |   30 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java                                                         |   23 
 opendj3-server-dev/src/server/org/opends/server/controls/EntryChangelogNotificationControl.java                                    |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java                            |   23 
 opendj3-server-dev/src/server/org/opends/server/config/JMXMBean.java                                                               |   48 
 opendj3-server-dev/src/server/org/opends/server/controls/PagedResultsControl.java                                                  |   29 
 opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java                                                   |   45 
 opendj3-server-dev/src/server/org/opends/server/loggers/TimeStampNaming.java                                                       |   15 
 opendj3-server-dev/src/server/org/opends/server/types/LDIFExportConfig.java                                                        |   13 
 opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java                                          |   14 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/OutputReader.java                                                     |   10 
 opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java                                                               |   69 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java                                                             |   53 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java       |    9 
 opendj3-server-dev/src/server/org/opends/server/controls/SubentriesControl.java                                                    |   14 
 opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyState.java                                                      |  532 -
 opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java                                        |   13 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java                                                        |  302 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java                        |   11 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java                                                    |   40 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ServerWriter.java                                               |   16 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java                      |   47 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LoginPanel.java                                                |   33 
 opendj3-server-dev/src/server/org/opends/server/core/SearchOperationBasis.java                                                     |   43 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java                                              |   49 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java                                   |   11 
 opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java                                      |   39 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerFailoverTest.java      |   11 
 opendj3-server-dev/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java                                            |   15 
 opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkerThread.java                                               |   46 
 opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java                                               |   25 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java       |   11 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/ExportJob.java                                                        |   20 
 opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java                                      |   45 
 opendj3-server-dev/src/server/org/opends/server/types/NameForm.java                                                                |   13 
 opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java                                   |   18 
 opendj3-server-dev/src/server/org/opends/server/replication/service/HeartbeatMonitor.java                                          |   25 
 opendj3-server-dev/src/server/org/opends/server/core/CompareOperationBasis.java                                                    |   24 
 opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java                                        |  371 
 opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java                                               |   13 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/Upgrade.java                                                         |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java                                        |   13 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/FileManager.java                                                     |   21 
 opendj3-server-dev/src/server/org/opends/server/replication/common/FirstChangeNumberVirtualAttributeProvider.java                  |    7 
 opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/LocalPurgeHistorical.java                                      |   17 
 opendj3-server-dev/src/server/org/opends/server/types/LDAPURL.java                                                                 |   33 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java                     |   33 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDBCursor.java                   |   11 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java                                             |   23 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ComputeBestServerTest.java             |   13 
 opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java                                                       |   53 
 opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplayThread.java                                               |   16 
 opendj3-server-dev/src/server/org/opends/server/extensions/FileSystemEntryCache.java                                               |  113 
 opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactMatchingRule.java                                           |   31 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java                                             |   79 
 opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationDomain.java                                         |  133 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Application.java                                                           |   17 
 opendj3-server-dev/src/ads/org/opends/admin/ads/ServerDescriptor.java                                                              |   20 
 opendj3-server-dev/src/server/org/opends/server/replication/server/SafeReadExpectedAcksInfo.java                                   |   15 
 opendj3-server-dev/src/server/org/opends/server/extensions/PasswordExpirationTimeVirtualAttributeProvider.java                     |   21 
 opendj3-server-dev/src/server/org/opends/server/backends/task/TaskScheduler.java                                                   |  118 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackupManager.java                                                    |  118 
 opendj3-server-dev/src/server/org/opends/server/api/ClientConnection.java                                                          |   31 
 opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java                                                   |   49 
 opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java                                                    |   86 
 opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java                                                          |   13 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java                                               |   11 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java                                              |   29 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java                                            |  125 
 opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java                                               |   19 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java                                  |   25 
 opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java                                               |   35 
 opendj3-server-dev/src/server/org/opends/server/tasks/RestoreTask.java                                                             |   24 
 opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationBasis.java                                                   |   14 
 opendj3-server-dev/src/server/org/opends/server/core/UnbindOperationBasis.java                                                     |   11 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java                                            |   17 
 opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java                                  |   43 
 opendj3-server-dev/src/server/org/opends/server/config/IntegerConfigAttribute.java                                                 |   33 
 opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java                                         |   55 
 opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java                                                           |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java                                       |   19 
 opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroup.java                                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java                                               |   22 
 opendj3-server-dev/src/server/org/opends/server/types/FilePermission.java                                                          |   51 
 opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java                                    |   86 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java                          |   50 
 opendj3-server-dev/src/server/org/opends/server/admin/AdministrationConnector.java                                                 |   13 
 opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java                                            |   14 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java                                          |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java                                           |   33 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromFile.java                                          |   14 
 opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java                                             |   12 
 opendj3-server-dev/src/server/org/opends/server/loggers/GZIPAction.java                                                            |   26 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java                                       |    9 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java                                                   |   77 
 opendj3-server-dev/src/server/org/opends/server/core/DefaultCompressedSchema.java                                                  |   30 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java                                      |    8 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Installation.java                                                          |   25 
 opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java                                  |   13 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java                                                   |  109 
 opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java                                             |   23 
 opendj3-server-dev/src/server/org/opends/server/controls/EntryChangeNotificationControl.java                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java                         |   90 
 opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java                   |   14 
 opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java                                         |   14 
 opendj3-server-dev/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java                                   |   28 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java                                                  |   20 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java                                          |    8 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java                                                         |   13 
 opendj3-server-dev/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java                                       |   16 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java                                        |   41 
 opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkerThread.java                                            |   46 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java                                          |   90 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationBackend.java                                         |   36 
 opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java                                      |   15 
 opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java                                  |   19 
 opendj3-server-dev/src/server/org/opends/server/core/SubentryPasswordPolicy.java                                                   |   13 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryValuePanel.java                                          |   11 
 opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java                                                             |   38 
 opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java                                             |   18 
 opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java                                  |   14 
 opendj3-server-dev/src/server/org/opends/server/monitors/VersionMonitorProvider.java                                               |   10 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/EnvManager.java                                                       |   19 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationDomainMonitorData.java                               |   25 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java                                    |   31 
 opendj3-server-dev/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java                                        |   14 
 opendj3-server-dev/build.xml                                                                                                       |    6 
 opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java                                    |   20 
 opendj3-server-dev/src/server/org/opends/server/core/SubentryManager.java                                                          |  103 
 opendj3-server-dev/src/server/org/opends/server/types/HostPort.java                                                                |    7 
 opendj3-server-dev/src/server/org/opends/server/types/SearchFilter.java                                                            |  197 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryAttributeEditorPanel.java                                |   11 
 opendj3-server-dev/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java                                           |   19 
 opendj3-server-dev/src/server/org/opends/server/api/DirectoryThread.java                                                           |   17 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerHandler.java                                   |   39 
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java                                    |   51 
 opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java                               |  110 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Launcher.java                                                              |   10 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java                                          |   24 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java                                     |   12 
 opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java                                                  |  223 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java                                                   |   92 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java                                        |    8 
 opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java                                  |   43 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java                                     |    8 
 opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java                                 |   13 
 opendj3-server-dev/src/server/org/opends/server/replication/server/DataServerHandler.java                                          |   13 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java                                                     |   23 
 opendj3-server-dev/src/server/org/opends/server/config/DNConfigAttribute.java                                                      |   48 
 opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesControl.java                                                 |   19 
 opendj3-server-dev/src/server/org/opends/server/backends/task/TaskThread.java                                                      |   24 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java                                                         |    8 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java                                               |   19 
 opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java                                                      |   16 
 opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java                                 |   24 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java                                        |    8 
 opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java                                                   |   13 
 opendj3-server-dev/src/server/org/opends/server/types/DN.java                                                                      |   31 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/ConfirmUninstallPanel.java                                      |   13 
 opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java                                              |   35 
 opendj3-server-dev/src/server/org/opends/server/types/RawFilter.java                                                               |  100 
 opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java                                       |   23 
 opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java                                                     |   43 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java                                     |    8 
 opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java                                                  |   13 
 opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java                                                    |   39 
 opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java                                                       |   14 
 opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciHandler.java                                           |   19 
 opendj3-server-dev/src/server/org/opends/server/tasks/TaskUtils.java                                                               |   13 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java                                        |    8 
 opendj3-server-dev/src/server/org/opends/server/types/AttributeBuilder.java                                                        |   59 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java                                                            |   52 
 opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java                                                         |   31 
 opendj3-server-dev/src/server/org/opends/server/loggers/RotationActionThread.java                                                  |   20 
 opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java                                     |   27 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java                            |   15 
 opendj3-server-dev/src/server/org/opends/server/core/DirectoryServerShutdownHook.java                                              |   11 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java                                                          |   62 
 opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java                                                 |   15 
 opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java                                                        |   56 
 opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java                                            |   33 
 opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java                                 |   33 
 opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java                                                          |   56 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java              |    9 
 opendj3-server-dev/src/server/org/opends/server/util/EMailMessage.java                                                             |   24 
 opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java                                    |   43 
 opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationKeyManager.java                                                    |   17 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java                                     |    8 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/HtmlProgressMessageFormatter.java                                     |   11 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java                      |   37 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java                         |   24 
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEUtils.java                                       |   11 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java                        |   33 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java          |    2 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java                    |   50 
 opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java                                                     |   64 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java                                                          |    8 
 opendj3-server-dev/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java                                                |   99 
 opendj3-server-dev/src/server/org/opends/server/extensions/GetConnectionIDExtendedOperation.java                                   |   13 
 opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java                                            |   53 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/UIKeyStore.java                                                       |   36 
 opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java                                                            |   28 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java                      |   13 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java                                                 |   18 
 opendj3-server-dev/src/server/org/opends/server/replication/common/LastChangeNumberVirtualAttributeProvider.java                   |    7 
 opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java                                                    |   18 
 opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java                          |   11 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java                                                        |    8 
 opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java                                                       |   59 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java                                        |   11 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/TopologyViewTest.java                   |   11 
 opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java                                      |   19 
 opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java                                                 |   13 
 opendj3-server-dev/src/ads/org/opends/admin/ads/util/ConnectionUtils.java                                                          |   36 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java                                                            |   34 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java                                       |    8 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java                                                   |   13 
 opendj3-server-dev/src/server/org/opends/server/tasks/AddSchemaFileTask.java                                                       |   38 
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java       |   11 
 opendj3-server-dev/src/server/org/opends/server/core/DeleteOperationBasis.java                                                     |   20 
 opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java                                                         |   78 
 opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java                                         |   49 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java                                    |   14 
 opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java                                               |   64 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPReader.java                                                     |  596 -
 opendj3-server-dev/src/server/org/opends/server/loggers/debug/TraceSettings.java                                                   |   11 
 opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java                                           |   24 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/browser/BrowserController.java                                    |   15 
 opendj3-server-dev/src/server/org/opends/server/extensions/AESPasswordStorageScheme.java                                           |   28 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java                                           |   11 
 opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicy.java                                                      |    7 
 opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java                          |   14 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java                                       |    8 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java                                            |   11 
 opendj3-server-dev/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java                                             |   18 
 opendj3-server-dev/src/server/org/opends/server/core/LockFileManager.java                                                          |   62 
 opendj3-server-dev/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java                                 |    8 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java                                           |   11 
 opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagedObject.java                                              |   34 
 opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeCli.java                                                      |   41 
 opendj3-server-dev/src/server/org/opends/server/extensions/BlowfishPasswordStorageScheme.java                                      |   28 
 opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java                                               |   14 
 opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java                               |   38 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java                                                |   37 
 opendj3-server-dev/src/server/org/opends/server/backends/task/RecurringTask.java                                                   |   34 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPReader.java                                                              |   26 
 466 files changed, 4,882 insertions(+), 11,576 deletions(-)

diff --git a/opendj3-server-dev/build.xml b/opendj3-server-dev/build.xml
index b1f21f5..c17d73f 100644
--- a/opendj3-server-dev/build.xml
+++ b/opendj3-server-dev/build.xml
@@ -785,7 +785,7 @@
           <include name="build-tools.jar" />
         </fileset>
       	<fileset dir="${lib.dir}/compile">
-      	  <include name="i18n-core.jar" />
+      	  <include name="*.jar" />
       	</fileset>
         <pathelement path="${classes.dir}"/>
       </classpath>
@@ -804,7 +804,7 @@
       <include name="**/org/opends/server/types/OpenDsException.java"/>
       <classpath>
       	<fileset dir="${lib.dir}/compile">
-      	    <include name="i18n-core.jar" />
+      		<include name="*.jar" />
       	</fileset>
       </classpath>
     </javac>
@@ -814,7 +814,7 @@
           <include name="build-tools.jar" />
         </fileset>
       	<fileset dir="${lib.dir}/compile">
-      	    <include name="i18n-core.jar" />
+      		<include name="*.jar" />
       	</fileset>
         <pathelement path="${classes.dir}"/>
       </classpath>
diff --git a/opendj3-server-dev/replace.rb b/opendj3-server-dev/replace.rb
index 18d0d22..2170e3a 100755
--- a/opendj3-server-dev/replace.rb
+++ b/opendj3-server-dev/replace.rb
@@ -47,33 +47,6 @@
   SNMP_DIR = ["src/snmp/src"]
   DSML_DIR = ["src/dsml/org"]
 
-  # Replacement for messages
-  # Modify 1052 files, for a total of 2366 replacements - leaves 10274 compilation errors mostly due to generated messages
-  MESSAGES = {
-     :dirs => DSML_DIR,
-     :extensions => ["java"],
-     :stopwords => ['org/opends/messages'],
-     :replacements =>
-       [
-        /import org.opends.messages.(\bMessage(Builder)?(Descriptor)?\b|\*)(\.Arg..?)?;/,
-        'import org.forgerock.i18n.Localizable\1\4;',
-
-        /\bMessage\b/,
-        'LocalizableMessage',
-
-        /\bMessageBuilder\b/,
-        'LocalizableMessageBuilder',
-
-        /\bMessageDescriptor\b/,
-        'LocalizableMessageDescriptor',
-
-        /LocalizableMessage.raw\((\n\s+)?Category.\w+,\s+(\n\s+)?Severity.\w+,\s?/,
-        'LocalizableMessage.raw(',
-
-        /msg.getDescriptor().equals\((\w)+\)/,
-        "msg.resourceName().equals(\\1.resourceName())\n      && msg.ordinal().equals(\\1.ordinal())"
-       ]
-   }
 
   # Replacement for types
   TYPES = {
@@ -143,18 +116,18 @@
   # Modify 454 files, for a total of 2427 replacements - leaves 72 compilation errors
   # TODO: add I18N loggers
   LOGGERS = {
-    :dirs => JAVA_DIRS,
+    :dirs => SNMP_DIR,
     :stopwords => ['src/server/org/opends/server/loggers', 'DebugLogPublisher'],
     :extensions => ["java"],
     :replacements =>
       [
         /import org.opends.server.loggers.debug.DebugTracer;/,
-        "import org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;",
+        "import org.forgerock.i18n.LocalizableMessage;\nimport org.forgerock.i18n.slf4j.LocalizedLogger;",
 
         /import java.util.logging.Logger;/,
-        "import org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;",
+        "import org.forgerock.i18n.LocalizableMessage;\nimport org.forgerock.i18n.slf4j.LocalizedLogger;",
 
-        /import java.util.logging.Level;\n/,
+        /import java.util.logging.Level;/,
         '',
 
         /import org.opends.server.types.DebugLogLevel;\n/,
@@ -164,7 +137,7 @@
         #'',
 
         /DebugTracer TRACER = (DebugLogger.)?getTracer\(\)/,
-        "Logger debugLogger = LoggerFactory.getLogger({CLASSNAME}.class)",
+        "LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass()",
 
         /^\s*\/\*\*\n.*The tracer object for the debug logger.\n\s*\*\/$\n/,
         '',
@@ -173,40 +146,43 @@
         '',
 
         /if \(debugEnabled\(\)\)\s*{\s* TRACER.debugCaught\(DebugLogLevel.ERROR, (\b.*\b)\);\s*\n\s*}$/,
-        'debugLogger.trace("Error", \1);',
+        'logger.traceException(\1);',
 
         /TRACER\.debugCaught\(DebugLogLevel.ERROR, (\b.*\b)\);/,
-        'debugLogger.trace("Error", \1);',
+        'logger.traceException(\1);',
 
         /TRACER.debug[^(]+\(/,
-        'debugLogger.trace(',
+        'logger.trace(',
 
-        /debugLogger.trace\(DebugLogLevel.\b\w+\b, ?/,
-        'debugLogger.trace(',
+        /logger.trace\(DebugLogLevel.\b\w+\b, ?/,
+        'logger.trace(',
 
-        /debugLogger.trace\(e\)/,
-        'debugLogger.trace("Error", e)',
+        /logger.trace\((e|de)\)/,
+        'logger.traceException(\1)',
 
         /(DebugLogger\.|\b)debugEnabled\(\)/,
-        'debugLogger.isTraceEnabled()',
+        'logger.isTraceEnabled()',
 
         /(LOG|logger).log\((Level.)?WARNING, ?/,
-        '\1.warn(',
+        'logger.warn(',
 
         /(LOG|logger).log\((Level.)?CONFIG, ?/,
-        '\1.info(',
+        'logger.info(',
 
         /(LOG|logger).log\((Level.)?INFO, ?/,
-        '\1.debug(',
+        'logger.debug(',
 
         /(LOG|logger).log\((Level.)?SEVERE, ?/,
-        '\1.error(',
+        'logger.error(',
 
         /(LOG|logger).log\((Level.)?FINE, ?/,
-        '\1.trace(',
+        'logger.trace(',
 
-        /Logger.getLogger\((\n\s+)?(\b\w+\b).class.getName\(\)\);/,
-        'LoggerFactory.getLogger(\2.class);',
+        /logger.(warn|info|error|debug)([^;]+);/,
+        'logger.\1(LocalizableMessage.raw\2);',
+
+        /(private static final|static private final) Logger LOG =[^;]+;/,
+        'private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();',
       ]
   }
 
@@ -226,7 +202,7 @@
   }
 
   # List of replacements to run
-  REPLACEMENTS = [ MESSAGES ]
+  REPLACEMENTS = [ LOGGERS ]
   #REPLACEMENTS = [ MESSAGES, TYPES, DN_TYPES, EXCEPTIONS, LOGGERS, I18N_LOGGERS ]
 
 
@@ -294,16 +270,18 @@
     File.open(message_file).each { |line|
       line = line.chomp
       next if line.size==0 || line[0..0]=="#" || line[0..0]==" " || line[0..0]!=line[0..0].upcase || line[0..5]=="global"
-      first, *rest = line.split "_"
-      label = rest.join "_"
+      token = line.split("=")
+      first, *rest = token[0].split "_"
       level_label = if %w(INFO DEBUG NOTICE).include?(first) then first else first.to_s + "_" + rest[0].to_s end
       level = LOG_LEVELS[level_label]
-      puts "level #{level}, line #{line}"
+      label = first + rest.join("_")
+      label = label.gsub("MILD", "").gsub("SEVERE", "").gsub("FATAL", "")
+      puts "level #{level}, label #{label}"
     }
   end
 
 end
 
 # Launch all replacements defined in the REPLACEMENTS constant
-#Replace.new.messages("src/messages/messages/admin.properties")
-Replace.new.run
+Replace.new.messages("src/messages/messages/admin.properties")
+#Replace.new.run
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
index eb4adeb..57e2e90 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
@@ -38,8 +38,9 @@
 import java.util.HashMap;
 import java.util.SortedSet;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.CompositeName;
 import javax.naming.InvalidNameException;
@@ -63,7 +64,6 @@
 import javax.naming.ldap.LdapContext;
 
 import org.opends.admin.ads.util.ConnectionUtils;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.schema.SchemaConstants;
@@ -74,8 +74,7 @@
  */
 public class ADSContext
 {
-  private static final Logger LOG =
-    Logger.getLogger(ADSContext.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Enumeration containing the different server properties syntaxes
@@ -876,13 +875,13 @@
             }
             if (!found)
             {
-              LOG.log(Level.WARNING, "Could not find public key for "+
-                  properties);
+              logger.warn(LocalizableMessage.raw("Could not find public key for "+
+                  properties));
             }
           }
           catch (NameNotFoundException x)
           {
-            LOG.log(Level.WARNING, "Could not find public key for "+properties);
+            logger.warn(LocalizableMessage.raw("Could not find public key for "+properties));
           }
           finally
           {
@@ -1272,9 +1271,9 @@
         }
         catch (Exception ex)
         {
-          LOG.log(Level.WARNING,
+          logger.warn(LocalizableMessage.raw(
               "Error while closing LDAP connection after removing admin data",
-              ex);
+              ex));
         }
       }
       // Recreate the container entries:
@@ -2223,7 +2222,7 @@
     }
     catch (InvalidNameException x)
     {
-      LOG.log(Level.SEVERE, "Error parsing dn "+dn, x);
+      logger.error(LocalizableMessage.raw("Error parsing dn "+dn, x));
       throw new ADSContextException(
           ADSContextException.ErrorType.ERROR_UNEXPECTED, x);
     }
@@ -2250,7 +2249,7 @@
     }
     catch (InvalidNameException x)
     {
-      LOG.log(Level.SEVERE, "Error parsing rdn "+rdnName, x);
+      logger.error(LocalizableMessage.raw("Error parsing rdn "+rdnName, x));
       throw new ADSContextException(
           ADSContextException.ErrorType.ERROR_UNEXPECTED, x);
     }
@@ -2577,8 +2576,8 @@
         }
         catch (Exception ex)
         {
-          LOG.log(Level.WARNING,
-              "Unexpected error closing enumeration on ADS key pairs", ex);
+          logger.warn(LocalizableMessage.raw(
+              "Unexpected error closing enumeration on ADS key pairs", ex));
         }
       }
     }
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/ServerDescriptor.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/ServerDescriptor.java
index b2a0bd9..4f75777 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/ServerDescriptor.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/ServerDescriptor.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2007-2010 Sun Microsystems, Inc.
- *      Portion Copyright 2013 ForgeRock AS.
+ *      Portion Copyright 2013-2014 ForgeRock AS.
  */
 
 package org.opends.admin.ads;
@@ -34,8 +34,9 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingEnumeration;
@@ -66,8 +67,7 @@
 
   private static final String TRUSTSTORE_DN = "cn=ads-truststore";
 
-  private static final Logger LOG =
-    Logger.getLogger(ServerDescriptor.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Enumeration containing the different server properties that we can keep in
@@ -566,15 +566,15 @@
             }
             catch (Throwable t)
             {
-              LOG.log(Level.WARNING, "Error calculating host port: "+t+" in "+
-                  adsProperties, t);
+              logger.warn(LocalizableMessage.raw("Error calculating host port: "+t+" in "+
+                  adsProperties, t));
             }
             break;
           }
           else
           {
-            LOG.log(Level.WARNING, "Value for "+portProp+" is null in "+
-                adsProperties);
+            logger.warn(LocalizableMessage.raw("Value for "+portProp+" is null in "+
+                adsProperties));
           }
         }
       }
@@ -1450,7 +1450,7 @@
     catch (NameNotFoundException nnfe)
     {
       // Ignore
-      LOG.log(Level.WARNING, "Error cleaning truststore: "+nnfe, nnfe);
+      logger.warn(LocalizableMessage.raw("Error cleaning truststore: "+nnfe, nnfe));
     }
   }
 
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/TopologyCache.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/TopologyCache.java
index 371d03e..96403d6 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/TopologyCache.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/TopologyCache.java
@@ -39,8 +39,9 @@
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingEnumeration;
@@ -55,7 +56,6 @@
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.opends.admin.ads.util.PreferredConnection;
 import org.opends.admin.ads.util.ServerLoader;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.util.Utils;
 
 /**
@@ -80,8 +80,7 @@
       new LinkedHashSet<PreferredConnection>();
   private final TopologyCacheFilter filter = new TopologyCacheFilter();
   private final static int MULTITHREAD_TIMEOUT = 90 * 1000;
-  private static final Logger LOG =
-      Logger.getLogger(TopologyCache.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Constructor of the TopologyCache.
@@ -138,8 +137,8 @@
         ServerDescriptor descriptor = loader.getServerDescriptor();
         for (ReplicaDescriptor replica : descriptor.getReplicas())
         {
-          LOG.log(Level.INFO, "Handling replica with dn: "
-              + replica.getSuffix().getDN());
+          logger.debug(LocalizableMessage.raw("Handling replica with dn: "
+              + replica.getSuffix().getDN()));
 
           boolean suffixFound = false;
           LdapName dn = new LdapName(replica.getSuffix().getDN());
@@ -363,7 +362,7 @@
       }
       catch (InterruptedException ie)
       {
-        LOG.log(Level.INFO, ie + " caught and ignored", ie);
+        logger.debug(LocalizableMessage.raw(ie + " caught and ignored", ie));
       }
       if (t.isAlive())
       {
@@ -372,7 +371,7 @@
     }
     Date endDate = new Date();
     long workingTime = endDate.getTime() - startDate.getTime();
-    LOG.log(Level.INFO, "Loading ended at " + workingTime + " ms");
+    logger.debug(LocalizableMessage.raw("Loading ended at " + workingTime + " ms"));
   }
 
   /**
@@ -503,8 +502,8 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Unexpected error reading replica ID: " + t,
-              t);
+          logger.warn(LocalizableMessage.raw("Unexpected error reading replica ID: " + t,
+              t));
         }
 
         for (ReplicaDescriptor replica : candidateReplicas)
@@ -524,8 +523,8 @@
               }
               catch (Throwable t)
               {
-                LOG.log(Level.WARNING,
-                    "Unexpected error reading age of oldest change: " + t, t);
+                logger.warn(LocalizableMessage.raw(
+                    "Unexpected error reading age of oldest change: " + t, t));
               }
             }
             s = ConnectionUtils.getFirstValue(sr, "missing-changes");
@@ -537,8 +536,8 @@
               }
               catch (Throwable t)
               {
-                LOG.log(Level.WARNING,
-                    "Unexpected error reading missing changes: " + t, t);
+                logger.warn(LocalizableMessage.raw(
+                    "Unexpected error reading missing changes: " + t, t));
               }
             }
             updatedReplicas.add(replica);
@@ -559,8 +558,8 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING,
-              "Unexpected error closing enumeration on monitor entries" + t, t);
+          logger.warn(LocalizableMessage.raw(
+              "Unexpected error closing enumeration on monitor entries" + t, t));
         }
       }
       if (ctx != null)
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationKeyManager.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationKeyManager.java
index d777863..d634277 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationKeyManager.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationKeyManager.java
@@ -23,6 +23,7 @@
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
  *      Portions Copyright 2009 Parametric Technology Corporation (PTC)
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.admin.ads.util;
@@ -36,8 +37,9 @@
 import java.security.PrivateKey;
 import java.security.UnrecoverableKeyException;
 import java.security.cert.X509Certificate;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
@@ -61,8 +63,7 @@
  */
 public class ApplicationKeyManager implements X509KeyManager
 {
-  static private final Logger LOG =
-    Logger.getLogger(ApplicationKeyManager.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The default keyManager.
@@ -145,25 +146,25 @@
       {
         // Nothing to do. Maybe we should avoid this and be strict, but we are
         // in a best effor mode.
-        LOG.log(Level.WARNING, "Error with the algorithm", e);
+        logger.warn(LocalizableMessage.raw("Error with the algorithm", e));
       }
       catch (KeyStoreException e)
       {
         // Nothing to do. Maybe we should avoid this and be strict, but we are
         // in a best effor mode..
-        LOG.log(Level.WARNING, "Error with the keystore", e);
+        logger.warn(LocalizableMessage.raw("Error with the keystore", e));
       }
       catch (UnrecoverableKeyException e)
       {
         // Nothing to do. Maybe we should avoid this and be strict, but we are
         // in a best effor mode.
-        LOG.log(Level.WARNING, "Error with the key", e);
+        logger.warn(LocalizableMessage.raw("Error with the key", e));
       }
       catch (NoSuchProviderException e)
       {
         // Nothing to do. Maybe we should avoid this and be strict, but we are
         // in a best effor mode.
-        LOG.log(Level.WARNING, "Error with the provider", e);
+        logger.warn(LocalizableMessage.raw("Error with the provider", e));
       }
     }
   }
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationTrustManager.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationTrustManager.java
index ae9caf2..b6b2b4a 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationTrustManager.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ApplicationTrustManager.java
@@ -23,7 +23,7 @@
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
  *      Portions Copyright 2009 Parametric Technology Corporation (PTC)
- *      Portions Copyright 2011 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 
 package org.opends.admin.ads.util;
@@ -35,8 +35,9 @@
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
@@ -77,8 +78,7 @@
      */
     HOST_NAME_MISMATCH
   }
-  static private final Logger LOG =
-    Logger.getLogger(ApplicationTrustManager.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private X509TrustManager trustManager;
   private String lastRefusedAuthType;
@@ -168,15 +168,15 @@
         }
         catch (NoSuchProviderException e)
         {
-          LOG.log(Level.WARNING, "Error with the provider: "+provider, e);
+          logger.warn(LocalizableMessage.raw("Error with the provider: "+provider, e));
         }
         catch (NoSuchAlgorithmException e)
         {
-          LOG.log(Level.WARNING, "Error with the algorithm: "+algo, e);
+          logger.warn(LocalizableMessage.raw("Error with the algorithm: "+algo, e));
         }
         catch (KeyStoreException e)
         {
-          LOG.log(Level.WARNING, "Error with the keystore", e);
+          logger.warn(LocalizableMessage.raw("Error with the keystore", e));
         }
       }
   }
@@ -422,8 +422,8 @@
         matches = hostMatch(value, host);
         if (!matches)
         {
-          LOG.log(Level.WARNING, "Subject DN RDN value is: "+value+
-              " and does not match host value: "+host);
+          logger.warn(LocalizableMessage.raw("Subject DN RDN value is: "+value+
+              " and does not match host value: "+host));
           // Try with the accepted hosts names
           for (int i =0; i<acceptedHosts.size() && !matches; i++)
           {
@@ -441,8 +441,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Error parsing subject dn: "+
-            chain[0].getSubjectX500Principal(), t);
+        logger.warn(LocalizableMessage.raw("Error parsing subject dn: "+
+            chain[0].getSubjectX500Principal(), t));
       }
 
       if (!matches)
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ConnectionUtils.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ConnectionUtils.java
index 262a684..efcb3ae 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ConnectionUtils.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ConnectionUtils.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2012-2013 ForgeRock AS
+ *      Portions Copyright 2012-2014 ForgeRock AS
  */
 
 package org.opends.admin.ads.util;
@@ -34,8 +34,9 @@
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.CommunicationException;
 import javax.naming.Context;
@@ -68,8 +69,7 @@
   private static final String STARTTLS_PROPERTY =
     "org.opends.connectionutils.isstarttls";
 
-  static private final Logger LOG =
-    Logger.getLogger(ConnectionUtils.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Private constructor: this class cannot be instantiated.
@@ -425,8 +425,8 @@
     catch (NamingException ne)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Naming exception getting environment of "+ctx,
-          ne);
+      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
+          ne));
     }
     return s;
   }
@@ -447,7 +447,7 @@
     catch (Throwable t)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Error getting host: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error getting host: "+t, t));
     }
     return s;
   }
@@ -468,7 +468,7 @@
     catch (Throwable t)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Error getting port: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error getting port: "+t, t));
     }
     return port;
   }
@@ -500,8 +500,8 @@
     catch (NamingException ne)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Naming exception getting environment of "+ctx,
-          ne);
+      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
+          ne));
     }
     return bindDN;
   }
@@ -521,8 +521,8 @@
     catch (NamingException ne)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Naming exception getting environment of "+ctx,
-          ne);
+      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
+          ne));
     }
     return bindPwd;
   }
@@ -543,7 +543,7 @@
     catch (Throwable t)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Error getting if is SSL "+t, t);
+      logger.warn(LocalizableMessage.raw("Error getting if is SSL "+t, t));
     }
     return isSSL;
   }
@@ -565,8 +565,8 @@
     catch (NamingException ne)
     {
       // This is really strange.  Seems like a bug somewhere.
-      LOG.log(Level.WARNING, "Naming exception getting environment of "+ctx,
-          ne);
+      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
+          ne));
     }
     return isStartTLS;
   }
@@ -648,8 +648,8 @@
         }
         catch(Exception ex)
         {
-          LOG.log(Level.WARNING,
-              "Unexpected error closing enumeration on cn=Config entry", ex);
+          logger.warn(LocalizableMessage.raw(
+              "Unexpected error closing enumeration on cn=Config entry", ex));
         }
       }
       connectedAsAdministrativeUser = true;
diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ServerLoader.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ServerLoader.java
index 7ed792b..fc5e8d6 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ServerLoader.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/util/ServerLoader.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 
 package org.opends.admin.ads.util;
@@ -30,8 +30,9 @@
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.AuthenticationException;
 import javax.naming.NamingException;
@@ -69,8 +70,7 @@
   private final LinkedHashSet<PreferredConnection> preferredLDAPURLs;
   private TopologyCacheFilter filter;
 
-  private static final Logger LOG =
-    Logger.getLogger(ServerLoader.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Constructor.
@@ -150,7 +150,7 @@
           TopologyCacheException.Type.TIMEOUT,
           new TimeLimitExceededException("Timeout reading server: "+ldapUrl),
           trustManager, ldapUrl);
-      LOG.log(Level.WARNING, "Timeout reading server: "+ldapUrl);
+      logger.warn(LocalizableMessage.raw("Timeout reading server: "+ldapUrl));
     }
     super.interrupt();
   }
@@ -171,8 +171,8 @@
     }
     catch (NoPermissionException npe)
     {
-      LOG.log(Level.WARNING,
-          "Permissions error reading server: "+getLastLdapUrl(), npe);
+      logger.warn(LocalizableMessage.raw(
+          "Permissions error reading server: "+getLastLdapUrl(), npe));
       if (!isAdministratorDn())
       {
         lastException = new TopologyCacheException(
@@ -189,8 +189,8 @@
     }
     catch (AuthenticationException ae)
     {
-      LOG.log(Level.WARNING,
-          "Authentication exception: "+getLastLdapUrl(), ae);
+      logger.warn(LocalizableMessage.raw(
+          "Authentication exception: "+getLastLdapUrl(), ae));
       if (!isAdministratorDn())
       {
         lastException = new TopologyCacheException(
@@ -207,8 +207,8 @@
     }
     catch (NamingException ne)
     {
-      LOG.log(Level.WARNING,
-          "NamingException error reading server: "+getLastLdapUrl(), ne);
+      logger.warn(LocalizableMessage.raw(
+          "NamingException error reading server: "+getLastLdapUrl(), ne));
       if (ctx == null)
       {
         lastException =
@@ -228,9 +228,9 @@
     {
       if (!isInterrupted)
       {
-        LOG.log(Level.WARNING,
-            "Generic error reading server: "+getLastLdapUrl(), t);
-        LOG.log(Level.WARNING, "server Properties: "+serverProperties);
+        logger.warn(LocalizableMessage.raw(
+            "Generic error reading server: "+getLastLdapUrl(), t));
+        logger.warn(LocalizableMessage.raw("server Properties: "+serverProperties));
         lastException =
             new TopologyCacheException(TopologyCacheException.Type.BUG, t);
       }
@@ -432,7 +432,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error parsing authentication DNs.", t);
+      logger.warn(LocalizableMessage.raw("Error parsing authentication DNs.", t));
     }
     return isAdministratorDn;
   }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
index 55a7f04..19e096a 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
@@ -34,14 +34,14 @@
 
 import java.io.File;
 import java.io.PrintStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.SwingUtilities;
 
 import org.opends.guitools.controlpanel.util.ControlPanelLog;
 import org.opends.messages.AdminToolMessages;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.ui.UIFactory;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.types.InitializationException;
@@ -67,8 +67,7 @@
   /** Suffix for log files. */
   static public final String LOG_FILE_SUFFIX = ".log";
 
-  static private final Logger LOG =
-    Logger.getLogger(ControlPanelLauncher.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Main method invoked by the control-panel script.
@@ -182,7 +181,7 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.WARNING, "Error setting look and feel: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error setting look and feel: "+t, t));
           }
 
           ControlPanelSplashScreen.main(args);
@@ -192,7 +191,7 @@
         {
           if (ControlPanelLog.isInitialized())
           {
-            LOG.log(Level.WARNING, "Error launching GUI: "+t);
+            logger.warn(LocalizableMessage.raw("Error launching GUI: "+t));
             StringBuilder buf = new StringBuilder();
             while (t != null)
             {
@@ -207,7 +206,7 @@
                 buf.append("Root cause:\n");
               }
             }
-            LOG.log(Level.WARNING, buf.toString());
+            logger.warn(LocalizableMessage.raw(buf.toString()));
           }
         }
       }
@@ -305,8 +304,7 @@
 
   private static ControlPanel controlPanel;
 
-  private static final Logger LOG =
-    Logger.getLogger(ControlPanelLauncher.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The main method for this class.
@@ -335,7 +333,7 @@
     {
       if (ControlPanelLog.isInitialized())
       {
-        LOG.log(Level.SEVERE, "Error launching GUI: "+t, t);
+        logger.error(LocalizableMessage.raw("Error launching GUI: "+t, t));
       }
       InternalError error =
         new InternalError("Failed to invoke initialize method");
@@ -357,12 +355,12 @@
       {
         try
         {
-          LOG.log(Level.INFO, "going to call createAndDisplayGUI.");
+          logger.debug(LocalizableMessage.raw("going to call createAndDisplayGUI."));
           controlPanel.createAndDisplayGUI();
-          LOG.log(Level.INFO, "called createAndDisplayGUI.");
+          logger.debug(LocalizableMessage.raw("called createAndDisplayGUI."));
         } catch (Throwable t)
         {
-          LOG.log(Level.SEVERE, "Error displaying GUI: "+t, t);
+          logger.error(LocalizableMessage.raw("Error displaying GUI: "+t, t));
           InternalError error =
             new InternalError("Failed to invoke display method");
           error.initCause(t);
@@ -382,8 +380,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error calling SwingUtilities.invokeAndWait: "+t,
-            t);
+        logger.error(LocalizableMessage.raw("Error calling SwingUtilities.invokeAndWait: "+t,
+            t));
         InternalError error =
           new InternalError(
               "Failed to invoke SwingUtilities.invokeAndWait method");
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/browser/BrowserController.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/browser/BrowserController.java
index aaa8276..8609499 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/browser/BrowserController.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/browser/BrowserController.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.guitools.controlpanel.browser;
@@ -36,8 +37,9 @@
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
@@ -137,8 +139,7 @@
 
   private String filter;
 
-  private static final Logger LOG =
-    Logger.getLogger(BrowserController.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Constructor of the BrowserController.
@@ -1585,7 +1586,7 @@
         }
         catch(Throwable t)
         {
-          LOG.log(Level.SEVERE, "Error calling refreshTaskDidProgress: "+t, t);
+          logger.error(LocalizableMessage.raw("Error calling refreshTaskDidProgress: "+t, t));
         }
       }
     };
@@ -1787,8 +1788,8 @@
     if (node.getError() != null) {
       if (node.getError().getException() != null)
       {
-        LOG.log(Level.SEVERE, "node has error: "+node.getError().getException(),
-            node.getError().getException());
+        logger.error(LocalizableMessage.raw("node has error: "+node.getError().getException(),
+            node.getError().getException()));
       }
       modifiers |= IconPool.MODIFIER_ERROR;
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
index 85832ef..ddb52f3 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.guitools.controlpanel.datamodel;
@@ -34,8 +35,9 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 import java.util.SortedSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -114,8 +116,7 @@
   private LinkedHashSet<IndexModifiedListener> indexListeners =
     new LinkedHashSet<IndexModifiedListener>();
 
-  private static final Logger LOG =
-    Logger.getLogger(ControlPanelInfo.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static ControlPanelInfo instance;
 
@@ -143,7 +144,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Error retrieving UI key store: "+t, t);
+        logger.warn(LocalizableMessage.raw("Error retrieving UI key store: "+t, t));
         instance.setTrustManager(new ApplicationTrustManager(null));
       }
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
index 2f74835..f5df6fe 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
@@ -50,8 +50,9 @@
 import java.util.LinkedHashSet;
 import java.util.SortedSet;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -96,7 +97,6 @@
 import org.opends.guitools.controlpanel.ui.nodes.BasicNode;
 import org.opends.guitools.controlpanel.ui.renderer.CustomListCellRenderer;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.quicksetup.UserDataCertificateException;
 import org.opends.quicksetup.ui.CertificateDialog;
@@ -198,8 +198,7 @@
       "organizationalUnit"
   };
 
-  private static final Logger LOG =
-    Logger.getLogger(AbstractBrowseEntriesPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -979,8 +978,8 @@
               {
                 // The suffix node exists but is not a suffix node.
                 // Simply log a message.
-                LOG.log(Level.WARNING, "Suffix: "+dn+
-                    " added as a non suffix node. Exception: "+iae, iae);
+                logger.warn(LocalizableMessage.raw("Suffix: "+dn+
+                    " added as a non suffix node. Exception: "+iae, iae));
               }
             }
           }
@@ -1518,8 +1517,8 @@
                   {
                     // The suffix node exists but is not a suffix node.
                     // Simply log a message.
-                    LOG.log(Level.WARNING, "Suffix: "+dn+
-                        " added as a non suffix node. Exception: "+iae, iae);
+                    logger.warn(LocalizableMessage.raw("Suffix: "+dn+
+                        " added as a non suffix node. Exception: "+iae, iae));
                   }
                 }
               }
@@ -1609,7 +1608,7 @@
         ApplicationTrustManager.Cause cause =
           getInfo().getTrustManager().getLastRefusedCause();
 
-        LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+        logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
         UserDataCertificateException.Type excType = null;
         if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
         {
@@ -1633,8 +1632,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.WARNING,
-                "Error parsing ldap url of ldap url.", t);
+            logger.warn(LocalizableMessage.raw(
+                "Error parsing ldap url of ldap url.", t));
             h = INFO_NOT_AVAILABLE_LABEL.get().toString();
             p = -1;
           }
@@ -1723,7 +1722,7 @@
 
       if ((chain != null) && (authType != null) && (host != null))
       {
-        LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+        logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
         getInfo().getTrustManager().acceptCertificate(chain, authType, host);
         createdUserDataCtx = createUserDataDirContext(bindDN, bindPassword);
       }
@@ -1731,18 +1730,18 @@
       {
         if (chain == null)
         {
-          LOG.log(Level.WARNING,
-              "The chain is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The chain is null for the UserDataCertificateException"));
         }
         if (authType == null)
         {
-          LOG.log(Level.WARNING,
-              "The auth type is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The auth type is null for the UserDataCertificateException"));
         }
         if (host == null)
         {
-          LOG.log(Level.WARNING,
-              "The host is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The host is null for the UserDataCertificateException"));
         }
       }
     }
@@ -1758,7 +1757,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
index aceca3f..5496d22 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
@@ -42,8 +42,9 @@
 import java.util.GregorianCalendar;
 import java.util.LinkedHashSet;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.Box;
 import javax.swing.JButton;
@@ -67,7 +68,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.BackupTableCellRenderer;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.BackupInfo;
 import org.opends.server.types.OpenDsException;
@@ -144,8 +144,7 @@
 
   private BackupTableCellRenderer renderer;
 
-  private static final Logger LOG =
-    Logger.getLogger(BackupListPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -404,7 +403,7 @@
                 if (!children[i].getName().equals("tasks") &&
                     (firstThrowable != null))
                 {
-                  LOG.log(Level.WARNING, "Error searching backup: "+t2, t2);
+                  logger.warn(LocalizableMessage.raw("Error searching backup: "+t2, t2));
                 }
               }
             }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
index 3b7c66d..5585b66 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
@@ -41,8 +41,9 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.ButtonGroup;
 import javax.swing.DefaultComboBoxModel;
@@ -67,7 +68,6 @@
 import org.opends.guitools.controlpanel.ui.components.ScheduleSummaryPanel;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.tools.BackUpDB;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.BackupInfo;
@@ -104,8 +104,7 @@
 
   private ScheduleSummaryPanel schedulePanel;
 
-  private static final Logger LOG =
-    Logger.getLogger(BackupPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -502,7 +501,7 @@
                 {
                   if (!children[i].getName().equals("tasks"))
                   {
-                    LOG.log(Level.WARNING, "Error searching backup: "+t2, t2);
+                    logger.warn(LocalizableMessage.raw("Error searching backup: "+t2, t2));
                   }
                 }
               }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryAttributeEditorPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryAttributeEditorPanel.java
index c929e50..9f56439 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryAttributeEditorPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryAttributeEditorPanel.java
@@ -37,8 +37,9 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.Box;
 import javax.swing.ButtonGroup;
@@ -54,7 +55,6 @@
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.types.Schema;
 
 /**
@@ -83,8 +83,7 @@
   private final static int MAX_IMAGE_HEIGHT = 300;
   private final static int MAX_BASE64_TO_DISPLAY = 3 * 1024;
 
-  private static final Logger LOG =
-    Logger.getLogger(BinaryAttributeEditorPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -189,7 +188,7 @@
         packParentDialog();
         if (t != null)
         {
-          LOG.log(Level.WARNING, "Error reading binary contents: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error reading binary contents: "+t, t));
         }
       }
     };
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryValuePanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryValuePanel.java
index c46c7c7..90c142c 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryValuePanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/BinaryValuePanel.java
@@ -31,8 +31,9 @@
 
 import java.awt.Component;
 import java.awt.GridBagConstraints;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.Box;
 import javax.swing.JLabel;
@@ -41,7 +42,6 @@
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.types.Schema;
 
 /**
@@ -58,8 +58,7 @@
   private JLabel lImage = Utilities.createDefaultLabel();
   private byte[] lastBytes;
 
-  private static final Logger LOG =
-    Logger.getLogger(BinaryValuePanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -124,7 +123,7 @@
         packParentDialog();
         if (t != null)
         {
-          LOG.log(Level.WARNING, "Error reading binary contents: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error reading binary contents: "+t, t));
         }
       }
     };
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
index 2acf548..e07cf5f 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
@@ -41,8 +41,9 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
@@ -68,7 +69,6 @@
 import org.opends.guitools.controlpanel.task.OnlineUpdateException;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.Installation;
 import org.opends.quicksetup.UserData;
 import org.opends.quicksetup.UserDataCertificateException;
@@ -107,8 +107,7 @@
 
   private boolean callOKWhenVisible;
 
-  private static final Logger LOG =
-    Logger.getLogger(LocalOrRemotePanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -657,7 +656,7 @@
 
           if (throwable != null)
           {
-            LOG.log(Level.INFO, "Error connecting: " + throwable, throwable);
+            logger.debug(LocalizableMessage.raw("Error connecting: " + throwable, throwable));
 
             if (isVersionException(throwable))
             {
@@ -668,7 +667,7 @@
               ApplicationTrustManager.Cause cause =
                 getInfo().getTrustManager().getLastRefusedCause();
 
-              LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+              logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
               UserDataCertificateException.Type excType = null;
               if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
               {
@@ -698,8 +697,8 @@
                 }
                 catch (Throwable t)
                 {
-                  LOG.log(Level.WARNING,
-                      "Error parsing ldap url of ldap url.", t);
+                  logger.warn(LocalizableMessage.raw(
+                      "Error parsing ldap url of ldap url.", t));
                   h = INFO_NOT_AVAILABLE_LABEL.get().toString();
                   p = -1;
                 }
@@ -752,15 +751,15 @@
             }
             else if (throwable instanceof ConfigReadException)
             {
-              LOG.log(Level.WARNING,
-                  "Error reading configuration: "+throwable, throwable);
+              logger.warn(LocalizableMessage.raw(
+                  "Error reading configuration: "+throwable, throwable));
               errors.add(((ConfigReadException)throwable).getMessageObject());
             }
             else
             {
               // This is a bug
-              LOG.log(Level.SEVERE,
-                  "Unexpected error: "+throwable, throwable);
+              logger.error(LocalizableMessage.raw(
+                  "Unexpected error: "+throwable, throwable));
               errors.add(Utils.getThrowableMsg(INFO_BUG_MSG.get(), throwable));
             }
           }
@@ -859,7 +858,7 @@
 
       if ((chain != null) && (authType != null) && (host != null))
       {
-        LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+        logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
         getInfo().getTrustManager().acceptCertificate(chain, authType, host);
         /* Simulate a click on the OK by calling in the okClicked method. */
         SwingUtilities.invokeLater(new Runnable()
@@ -874,18 +873,18 @@
       {
         if (chain == null)
         {
-          LOG.log(Level.WARNING,
-              "The chain is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The chain is null for the UserDataCertificateException"));
         }
         if (authType == null)
         {
-          LOG.log(Level.WARNING,
-              "The auth type is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The auth type is null for the UserDataCertificateException"));
         }
         if (host == null)
         {
-          LOG.log(Level.WARNING,
-              "The host is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The host is null for the UserDataCertificateException"));
         }
       }
     }
@@ -901,7 +900,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LoginPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LoginPanel.java
index 081aa85..985f2ee 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LoginPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LoginPanel.java
@@ -36,8 +36,9 @@
 import java.security.cert.X509Certificate;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -51,7 +52,6 @@
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.UserDataCertificateException;
 import org.opends.quicksetup.ui.CertificateDialog;
 import org.opends.quicksetup.util.UIKeyStore;
@@ -71,8 +71,7 @@
   private JLabel dnLabel;
   private String usedUrl;
 
-  private static final Logger LOG =
-    Logger.getLogger(LoginPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -285,14 +284,14 @@
           boolean handleCertificateException = false;
           if (throwable != null)
           {
-            LOG.log(Level.INFO, "Error connecting: " + throwable, throwable);
+            logger.debug(LocalizableMessage.raw("Error connecting: " + throwable, throwable));
 
             if (Utils.isCertificateException(throwable))
             {
               ApplicationTrustManager.Cause cause =
                 getInfo().getTrustManager().getLastRefusedCause();
 
-              LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+              logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
               UserDataCertificateException.Type excType = null;
               if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
               {
@@ -322,8 +321,8 @@
                 }
                 catch (Throwable t)
                 {
-                  LOG.log(Level.WARNING,
-                      "Error parsing ldap url of ldap url.", t);
+                  logger.warn(LocalizableMessage.raw(
+                      "Error parsing ldap url of ldap url.", t));
                   h = INFO_NOT_AVAILABLE_LABEL.get().toString();
                   p = -1;
                 }
@@ -443,7 +442,7 @@
 
       if ((chain != null) && (authType != null) && (host != null))
       {
-        LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+        logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
         getInfo().getTrustManager().acceptCertificate(chain, authType, host);
         /* Simulate a click on the OK by calling in the okClicked method. */
         SwingUtilities.invokeLater(new Runnable()
@@ -458,18 +457,18 @@
       {
         if (chain == null)
         {
-          LOG.log(Level.WARNING,
-              "The chain is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The chain is null for the UserDataCertificateException"));
         }
         if (authType == null)
         {
-          LOG.log(Level.WARNING,
-              "The auth type is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The auth type is null for the UserDataCertificateException"));
         }
         if (host == null)
         {
-          LOG.log(Level.WARNING,
-              "The host is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The host is null for the UserDataCertificateException"));
         }
       }
     }
@@ -485,7 +484,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
index d2abae5..7744203 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
@@ -44,8 +44,9 @@
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.Box;
 import javax.swing.JButton;
@@ -72,7 +73,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.TaskCellRenderer;
 import org.opends.guitools.controlpanel.util.ConfigFromFile;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.tools.tasks.TaskEntry;
@@ -129,8 +129,7 @@
   private JTextArea logs;
   private JLabel noLogsLabel;
 
-  private static final Logger LOG =
-    Logger.getLogger(ManageTasksPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -568,7 +567,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error getting entry '"+csr.getDN()+"': "+t, t);
+        logger.error(LocalizableMessage.raw("Error getting entry '"+csr.getDN()+"': "+t, t));
       }
     }
     return list;
@@ -635,7 +634,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error getting entry '"+csr.getDN()+"': "+t, t);
+        logger.error(LocalizableMessage.raw("Error getting entry '"+csr.getDN()+"': "+t, t));
       }
     }
     return list;
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index 105839f..b12b0c5 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -55,8 +55,9 @@
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingEnumeration;
 import javax.naming.directory.SearchControls;
@@ -94,7 +95,6 @@
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.LowerCaseComparator;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.i18n.LocalizableMessageDescriptor;
 import org.opends.quicksetup.ui.CustomHTMLEditorKit;
@@ -147,8 +147,7 @@
   private static final String MAIN_PANEL = "mainPanel";
   private static final String MESSAGE_PANEL = "messagePanel";
 
-  private static final Logger LOG =
-    Logger.getLogger(StatusGenericPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The error pane.
@@ -1786,7 +1785,7 @@
 
           if (t != null)
           {
-            LOG.log(Level.WARNING, "Error occurred running task: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error occurred running task: "+t, t));
             if ((task.getReturnCode() != null) &&
                 (errorDetailCode != null))
             {
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java
index c6ebe41..a3f3894 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java
@@ -219,7 +219,7 @@
     catch (Throwable t)
     {
       entry = null;
-      LOG.log(Level.WARNING, "Unexpected error: "+t, t);
+      logger.warn(LocalizableMessage.raw("Unexpected error: "+t, t));
     }
     */
     LDAPEntryChangedEvent ev = new LDAPEntryChangedEvent(this, entry);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/components/BinaryCellPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/components/BinaryCellPanel.java
index daa73f6..d9c55d9 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/components/BinaryCellPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/components/BinaryCellPanel.java
@@ -34,8 +34,9 @@
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.text.ParseException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.swing.Box;
 import javax.swing.Icon;
@@ -49,7 +50,6 @@
 import org.opends.guitools.controlpanel.datamodel.BinaryValue;
 import org.opends.guitools.controlpanel.ui.ColorAndFontConstants;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * A simple panel used in the LDAP entry viewers to display a binary value.
@@ -74,8 +74,7 @@
 
   private final static int THUMBNAIL_HEIGHT = 50;
 
-  private static final Logger LOG =
-    Logger.getLogger(BinaryCellPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -246,7 +245,7 @@
       }
       catch (ParseException pe)
       {
-        LOG.log(Level.WARNING, "Error decoding base 64 value: "+pe, pe);
+        logger.warn(LocalizableMessage.raw("Error decoding base 64 value: "+pe, pe));
         Utilities.setWarningLabel(label, ERR_LOADING_IMAGE.get());
       }
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ApplicationPrintStream.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ApplicationPrintStream.java
index d61d64b..b42ac53 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ApplicationPrintStream.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ApplicationPrintStream.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.guitools.controlpanel.util;
@@ -29,8 +30,9 @@
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.guitools.controlpanel.event.PrintStreamListener;
 
@@ -42,8 +44,7 @@
 {
   private ArrayList<PrintStreamListener> listeners =
     new ArrayList<PrintStreamListener>();
-  private static final Logger LOG =
-    Logger.getLogger(ApplicationPrintStream.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private boolean notifyListeners = true;
 
@@ -63,7 +64,7 @@
   public void println(String msg)
   {
     notifyListenersNewLine(msg);
-    LOG.log(Level.INFO, msg);
+    logger.debug(LocalizableMessage.raw(msg));
   }
 
   /**
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
index d0f38aa..393e5f2 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -43,8 +43,9 @@
 import java.util.SortedSet;
 import java.util.TimeZone;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
@@ -84,8 +85,7 @@
 {
   private static final String DATABASE_ENVIRONMENT_SUFFIX =
     " Database Environment";
-  private static final Logger LOG =
-    Logger.getLogger(ConfigFromDirContext.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private CustomSearchResult rootMonitor;
   private CustomSearchResult jvmMemoryUsage;
@@ -515,7 +515,7 @@
     }
     for (OpenDsException oe : ex)
     {
-      LOG.log(Level.WARNING, "Error reading configuration: "+oe, oe);
+      logger.warn(LocalizableMessage.raw("Error reading configuration: "+oe, oe));
     }
     administrativeUsers = Collections.unmodifiableSet(as);
     listeners = Collections.unmodifiableSet(ls);
@@ -526,7 +526,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error reading monitoring: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error reading monitoring: "+t, t));
       OnlineUpdateException oupe = new OnlineUpdateException(
           ERR_READING_CONFIG_LDAP.get(t.toString()), t);
       ex.add(oupe);
@@ -537,7 +537,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error reading task information: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error reading task information: "+t, t));
       OnlineUpdateException oupe = new OnlineUpdateException(
           ERR_READING_CONFIG_LDAP.get(t.toString()), t);
       ex.add(oupe);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromFile.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromFile.java
index 6c56b07..20792ce 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromFile.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromFile.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2011 Sun Microsystems, Inc.
- *      Portions copyright 2013 ForgeRock, AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.util;
@@ -38,8 +38,9 @@
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
@@ -86,8 +87,7 @@
  */
 public class ConfigFromFile extends ConfigReader
 {
-  private static final Logger LOG =
-    Logger.getLogger(ConfigFromFile.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this config file handler.  No initialization
@@ -369,7 +369,7 @@
     }
     catch (final Throwable t)
     {
-      LOG.log(Level.WARNING, "Error reading configuration: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error reading configuration: "+t, t));
       OfflineUpdateException oue = new OfflineUpdateException(
           ERR_READING_CONFIG_LDAP.get(t.getMessage().toString()), t);
       ex.add(oue);
@@ -385,7 +385,7 @@
 
     for (OpenDsException oe : ex)
     {
-      LOG.log(Level.WARNING, "Error reading configuration: "+oe, oe);
+      logger.warn(LocalizableMessage.raw("Error reading configuration: "+oe, oe));
     }
     exceptions = Collections.unmodifiableList(ex);
     administrativeUsers = Collections.unmodifiableSet(as);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
index 5b0d317..2f837fc 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.guitools.controlpanel.util;
@@ -35,8 +36,9 @@
 import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.ConnectionHandlerDescriptor;
@@ -60,8 +62,7 @@
  */
 public abstract class ConfigReader
 {
-  private static final Logger LOG =
-    Logger.getLogger(ConfigReader.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   /**
    * The class used to read the configuration from a file.
    */
@@ -106,7 +107,7 @@
       environmentSettingException = new OfflineUpdateException(
           ERR_CTRL_PANEL_SETTING_ENVIRONMENT.get(t.getMessage().toString()), t);
     }
-    LOG.log(Level.INFO, "Environment initialized.");
+    logger.debug(LocalizableMessage.raw("Environment initialized."));
   }
 
   /**
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
index 2ae4618..e59f20a 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
@@ -22,16 +22,16 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.guitools.controlpanel.util;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.logging.FileHandler;
-import java.util.logging.SimpleFormatter;
 import java.util.logging.Logger;
-import java.util.logging.Level;
+import java.util.logging.SimpleFormatter;
+
 import java.util.Date;
 import java.text.DateFormat;
 
@@ -68,7 +68,7 @@
         logger.addHandler(fileHandler);
       }
       Logger logger = Logger.getLogger(packages[0]);
-      logger.log(Level.INFO, getInitialLogRecord());
+      logger.info(getInitialLogRecord());
     }
   }
 
@@ -86,7 +86,7 @@
       logger.setUseParentHandlers(false); // disable logging to console
     }
     logger.addHandler(fileHandler);
-    logger.log(Level.INFO, getInitialLogRecord());
+    logger.info(getInitialLogRecord());
   }
 
   /**
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
index 15b2b02..0179cdb 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
@@ -65,8 +65,8 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 import java.util.Collections;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
@@ -89,8 +89,7 @@
  */
 public class UninstallCliHelper extends ConsoleApplication {
 
-  static private final Logger LOG =
-          Logger.getLogger(UninstallCliHelper.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private UninstallerArgumentParser parser;
 
@@ -180,14 +179,14 @@
         outsideDbs = config.getOutsideDbs();
       } catch (IOException ioe) {
         outsideDbs = Collections.emptySet();
-        LOG.log(Level.INFO, "error determining outside databases", ioe);
+        logger.debug(LocalizableMessage.raw("error determining outside databases", ioe));
       }
 
       try {
         outsideLogs = config.getOutsideLogs();
       } catch (IOException ioe) {
         outsideLogs = Collections.emptySet();
-        LOG.log(Level.INFO, "error determining outside logs", ioe);
+        logger.debug(LocalizableMessage.raw("error determining outside logs", ioe));
       }
 
       boolean somethingSpecifiedToDelete =
@@ -245,7 +244,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Could not create UninstallData: "+t, t);
+        logger.error(LocalizableMessage.raw("Could not create UninstallData: "+t, t));
         userData.setReplicationServer(
             referencedHostName+":8989");
       }
@@ -259,8 +258,8 @@
 
       if (adminConnectorUrl == null)
       {
-        LOG.log(Level.WARNING,
-        "Error retrieving a valid LDAP URL in conf file.");
+        logger.warn(LocalizableMessage.raw(
+        "Error retrieving a valid LDAP URL in conf file."));
         if (!parser.isInteractive())
         {
           LocalizableMessage msg = ERR_COULD_NOT_FIND_VALID_LDAPURL.get();
@@ -282,7 +281,7 @@
 
       if (isCanceled && !userData.isForceOnError())
       {
-        LOG.log(Level.INFO, "User cancelled uninstall.");
+        logger.debug(LocalizableMessage.raw("User cancelled uninstall."));
         userData = null;
       }
 
@@ -293,7 +292,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Exception: "+t, t);
+      logger.warn(LocalizableMessage.raw("Exception: "+t, t));
       if (t instanceof UserDataException)
       {
         throw (UserDataException)t;
@@ -307,7 +306,7 @@
         throw new IllegalStateException("Unexpected error: "+t, t);
       }
     }
-    LOG.log(Level.INFO, "Successfully created user data");
+    logger.debug(LocalizableMessage.raw("Successfully created user data"));
     return userData;
   }
 
@@ -373,7 +372,7 @@
     }
     catch (CLIException ce)
     {
-      LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       throw new UserDataException(null, ce.getMessageObject(), ce);
     }
 
@@ -425,7 +424,7 @@
             ((i == 7) && (outsideLogs.size() == 0));
             if (!ignore)
             {
-              answers[i] = askConfirmation(msgs[i], true, LOG);
+              answers[i] = askConfirmation(msgs[i], true, logger);
             }
             else
             {
@@ -535,16 +534,16 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error processing task: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error processing task: "+t, t));
       throw new UserDataException(Step.CONFIRM_UNINSTALL,
           Utils.getThrowableMsg(INFO_BUG_MSG.get(), t));
     }
-    LOG.log(Level.INFO, "interactive: "+interactive);
-    LOG.log(Level.INFO, "forceOnError: "+forceOnError);
-    LOG.log(Level.INFO, "conf.isADS(): "+conf.isADS());
-    LOG.log(Level.INFO, "conf.isReplicationServer(): "+
-        conf.isReplicationServer());
-    LOG.log(Level.INFO, "conf.isServerRunning(): "+conf.isServerRunning());
+    logger.debug(LocalizableMessage.raw("interactive: "+interactive));
+    logger.debug(LocalizableMessage.raw("forceOnError: "+forceOnError));
+    logger.debug(LocalizableMessage.raw("conf.isADS(): "+conf.isADS()));
+    logger.debug(LocalizableMessage.raw("conf.isReplicationServer(): "+
+        conf.isReplicationServer()));
+    logger.debug(LocalizableMessage.raw("conf.isServerRunning(): "+conf.isServerRunning()));
     if (conf.isADS() && conf.isReplicationServer())
     {
       if (conf.isServerRunning())
@@ -591,8 +590,8 @@
           boolean errorWithRemote =
             !updateUserUninstallDataWithRemoteServers(userData);
           cancelled = errorWithRemote && !parser.isForceOnError();
-          LOG.log(Level.INFO, "Non interactive mode.  errorWithRemote: "+
-              errorWithRemote);
+          logger.debug(LocalizableMessage.raw("Non interactive mode.  errorWithRemote: "+
+              errorWithRemote));
         }
       }
       else
@@ -671,8 +670,8 @@
         /* During all the confirmations, the server might be stopped. */
         userData.setStopServer(
             Installation.getLocal().getStatus().isServerRunning());
-        LOG.log(Level.INFO, "Must stop the server after confirmations? "+
-            userData.getStopServer());
+        logger.debug(LocalizableMessage.raw("Must stop the server after confirmations? "+
+            userData.getStopServer()));
       }
     }
     else
@@ -693,8 +692,8 @@
             /* During all the confirmations, the server might be stopped. */
             userData.setStopServer(
                 Installation.getLocal().getStatus().isServerRunning());
-            LOG.log(Level.INFO, "Must stop the server after confirmations? "+
-                userData.getStopServer());
+            logger.debug(LocalizableMessage.raw("Must stop the server after confirmations? "+
+                userData.getStopServer()));
           }
         }
         catch (CLIException ce)
@@ -720,7 +719,7 @@
         }
       }
     }
-    LOG.log(Level.INFO, "cancelled: "+cancelled);
+    logger.debug(LocalizableMessage.raw("cancelled: "+cancelled));
     return cancelled;
   }
 
@@ -732,7 +731,7 @@
    */
   private boolean confirmToStopServer() throws CLIException
   {
-    return askConfirmation(INFO_CLI_UNINSTALL_CONFIRM_STOP.get(), true, LOG);
+    return askConfirmation(INFO_CLI_UNINSTALL_CONFIRM_STOP.get(), true, logger);
   }
 
   /**
@@ -744,7 +743,7 @@
   private boolean confirmDeleteFiles() throws CLIException
   {
     return askConfirmation(INFO_CLI_UNINSTALL_CONFIRM_DELETE_FILES.get(), true,
-        LOG);
+        logger);
   }
 
   /**
@@ -756,7 +755,7 @@
   private boolean confirmToUpdateRemote() throws CLIException
   {
     return askConfirmation(INFO_CLI_UNINSTALL_CONFIRM_UPDATE_REMOTE.get(), true,
-        LOG);
+        logger);
   }
 
   /**
@@ -768,7 +767,7 @@
   private boolean confirmToUpdateRemoteAndStart() throws CLIException
   {
     return askConfirmation(
-        INFO_CLI_UNINSTALL_CONFIRM_UPDATE_REMOTE_AND_START.get(), true, LOG);
+        INFO_CLI_UNINSTALL_CONFIRM_UPDATE_REMOTE_AND_START.get(), true, logger);
   }
 
   /**
@@ -780,7 +779,7 @@
   private boolean promptToProvideAuthenticationAgain() throws CLIException
   {
     return askConfirmation(
-        INFO_UNINSTALL_CONFIRM_PROVIDE_AUTHENTICATION_AGAIN.get(), true, LOG);
+        INFO_UNINSTALL_CONFIRM_PROVIDE_AUTHENTICATION_AGAIN.get(), true, logger);
   }
 
   /**
@@ -859,8 +858,8 @@
         String adminConnectorUrl = info.getAdminConnectorURL();
         if (adminConnectorUrl == null)
         {
-          LOG.log(Level.WARNING,
-         "Error retrieving a valid Administration Connector URL in conf file.");
+          logger.warn(LocalizableMessage.raw(
+         "Error retrieving a valid Administration Connector URL in conf file."));
           LocalizableMessage msg = ERR_COULD_NOT_FIND_VALID_LDAPURL.get();
             throw new ApplicationException(ReturnCode.APPLICATION_ERROR, msg,
                 null);
@@ -875,7 +874,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.SEVERE, "Error parsing url: "+adminConnectorUrl);
+          logger.error(LocalizableMessage.raw("Error parsing url: "+adminConnectorUrl));
         }
         LDAPManagementContextFactory factory =
           new LDAPManagementContextFactory(alwaysSSL);
@@ -888,8 +887,8 @@
 
         if (adminConnectorUrl == null)
         {
-          LOG.log(Level.WARNING,
-         "Error retrieving a valid Administration Connector URL in conf file.");
+          logger.warn(LocalizableMessage.raw(
+         "Error retrieving a valid Administration Connector URL in conf file."));
           LocalizableMessage msg = ERR_COULD_NOT_FIND_VALID_LDAPURL.get();
           throw new ApplicationException(ReturnCode.APPLICATION_ERROR, msg,
               null);
@@ -916,7 +915,7 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.INFO, "Error closing connection: "+t, t);
+            logger.debug(LocalizableMessage.raw("Error closing connection: "+t, t));
           }
         }
       }
@@ -956,7 +955,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Could not create UninstallData: "+t, t);
+        logger.error(LocalizableMessage.raw("Could not create UninstallData: "+t, t));
       }
     }
     userData.setUpdateRemoteReplication(accepted);
@@ -973,14 +972,14 @@
     }
     catch (CLIException ce)
     {
-      LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: %s", ce), ce);
     }
     return s;
   }
 
   private boolean startServer(boolean supressOutput)
   {
-    LOG.log(Level.INFO, "startServer, supressOutput: "+supressOutput);
+    logger.debug(LocalizableMessage.raw("startServer, supressOutput: "+supressOutput));
     boolean serverStarted = false;
     Application application = new Application()
     {
@@ -1112,12 +1111,12 @@
         printlnProgress();
       }
       serverStarted = Installation.getLocal().getStatus().isServerRunning();
-      LOG.log(Level.INFO, "server started successfully. serverStarted: "+
-          serverStarted);
+      logger.debug(LocalizableMessage.raw("server started successfully. serverStarted: "+
+          serverStarted));
     }
     catch (ApplicationException ae)
     {
-      LOG.log(Level.WARNING, "ApplicationException: "+ae, ae);
+      logger.warn(LocalizableMessage.raw("ApplicationException: "+ae, ae));
       if (!supressOutput)
       {
         printErrorMessage(ae.getMessageObject());
@@ -1125,7 +1124,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.SEVERE, "Unexpected error: "+t, t);
+      logger.error(LocalizableMessage.raw("Unexpected error: "+t, t));
       throw new IllegalStateException("Unexpected error: "+t, t);
     }
     return serverStarted;
@@ -1158,7 +1157,7 @@
 
     LocalizableMessage exceptionMsg = null;
 
-    LOG.log(Level.INFO, "Updating user data with remote servers.");
+    logger.debug(LocalizableMessage.raw("Updating user data with remote servers."));
 
     InitialLdapContext ctx = null;
     try
@@ -1181,7 +1180,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error parsing url: "+adminConnectorUrl);
+        logger.error(LocalizableMessage.raw("Error parsing url: "+adminConnectorUrl));
       }
       ctx = createAdministrativeContext(host, port, useSSL, useStartTLS, dn,
           pwd, getConnectTimeout(),
@@ -1197,7 +1196,7 @@
         forceTrustManagerInitialization();
         updateTrustManager(userData, ci);
       }
-      LOG.log(Level.INFO, "Reloading topology");
+      logger.debug(LocalizableMessage.raw("Reloading topology"));
       TopologyCache cache = new TopologyCache(adsContext,
           userData.getTrustManager(), getConnectTimeout());
       cache.getFilter().setSearchMonitoringInformation(false);
@@ -1209,7 +1208,7 @@
     }
     catch (NamingException ne)
     {
-      LOG.log(Level.WARNING, "Error connecting to server: "+ne, ne);
+      logger.warn(LocalizableMessage.raw("Error connecting to server: "+ne, ne));
       if (Utils.isCertificateException(ne))
       {
         String details = ne.getMessage() != null ?
@@ -1224,7 +1223,7 @@
       }
     } catch (TopologyCacheException te)
     {
-      LOG.log(Level.WARNING, "Error connecting to server: "+te, te);
+      logger.warn(LocalizableMessage.raw("Error connecting to server: "+te, te));
       exceptionMsg = Utils.getMessage(te);
 
     } catch (ApplicationException ae)
@@ -1233,7 +1232,7 @@
 
     } catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error connecting to server: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error connecting to server: "+t, t));
       exceptionMsg = Utils.getThrowableMsg(INFO_BUG_MSG.get(), t);
     }
     finally
@@ -1246,7 +1245,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.INFO, "Error closing connection: "+t, t);
+          logger.debug(LocalizableMessage.raw("Error closing connection: "+t, t));
         }
       }
     }
@@ -1282,7 +1281,7 @@
         {
           accepted = askConfirmation(
               ERR_UNINSTALL_NOT_UPDATE_REMOTE_PROMPT.get(),
-              false, LOG);
+              false, logger);
         }
         catch (CLIException ce)
         {
@@ -1291,7 +1290,7 @@
       }
     }
     userData.setUpdateRemoteReplication(accepted);
-    LOG.log(Level.INFO, "accepted: "+accepted);
+    logger.debug(LocalizableMessage.raw("accepted: "+accepted));
     return accepted;
   }
 
@@ -1316,7 +1315,7 @@
     boolean reloadTopologyCache = false;
     boolean interactive = parser.isInteractive();
 
-    LOG.log(Level.INFO, "Handle topology cache.");
+    logger.debug(LocalizableMessage.raw("Handle topology cache."));
 
     Set<TopologyCacheException> exceptions =
       new HashSet<TopologyCacheException>();
@@ -1339,7 +1338,7 @@
     /* Check the exceptions and see if we throw them or not. */
     for (TopologyCacheException e : exceptions)
     {
-      LOG.log(Level.INFO, "Analyzing exception: "+e, e);
+      logger.debug(LocalizableMessage.raw("Analyzing exception: "+e, e));
       if (stopProcessing)
       {
         break;
@@ -1359,7 +1358,7 @@
           {
             println();
             if (ci.promptForCertificateConfirmation(e.getCause(),
-                e.getTrustManager(), e.getLdapUrl(), true, LOG))
+                e.getTrustManager(), e.getLdapUrl(), true, logger))
             {
               stopProcessing = true;
               reloadTopologyCache = true;
@@ -1396,7 +1395,7 @@
           returnValue = askConfirmation(
             ERR_UNINSTALL_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.get(
                 Utils.getMessageFromCollection(exceptionMsgs,
-                  Constants.LINE_SEPARATOR).toString()), true, LOG);
+                  Constants.LINE_SEPARATOR).toString()), true, logger);
         }
         catch (CLIException ce)
         {
@@ -1414,7 +1413,7 @@
     }
     else
     {
-      LOG.log(Level.INFO, "exceptionMsgs: "+exceptionMsgs);
+      logger.debug(LocalizableMessage.raw("exceptionMsgs: "+exceptionMsgs));
       if (exceptionMsgs.size() > 0)
       {
         if (parser.isForceOnError())
@@ -1445,7 +1444,7 @@
         returnValue = true;
       }
     }
-    LOG.log(Level.INFO, "Return value: "+returnValue);
+    logger.debug(LocalizableMessage.raw("Return value: "+returnValue));
     return returnValue;
   }
 
@@ -1550,7 +1549,7 @@
      }
      catch (ArgumentException ae)
      {
-       LOG.log(Level.WARNING, "Error initializing trust store: "+ae, ae);
+       logger.warn(LocalizableMessage.raw("Error initializing trust store: "+ae, ae));
      }
      forceNonInteractive = false;
    }
@@ -1558,7 +1557,7 @@
    private void printErrorMessage(LocalizableMessage msg)
    {
      super.println(msg);
-     LOG.log(Level.WARNING, msg.toString());
+     logger.warn(LocalizableMessage.raw(msg.toString()));
    }
 
    /**
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
index b15e471..063fb79 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -76,8 +76,8 @@
 import java.net.URI;
 import java.security.cert.X509Certificate;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import java.awt.event.WindowEvent;
 
 import javax.naming.Context;
@@ -111,8 +111,7 @@
 
   private UninstallCliHelper cliHelper = new UninstallCliHelper();
 
-  private static final Logger LOG =
-    Logger.getLogger(Uninstaller.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private LoginDialog loginDialog;
   private ProgressDialog startProgressDlg;
@@ -141,8 +140,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error enabling admin framework class loader: "+t,
-          t);
+      logger.warn(LocalizableMessage.raw("Error enabling admin framework class loader: "+t,
+          t));
     }
 
     // Switch off class name validation in client.
@@ -151,7 +150,7 @@
     // Switch off attribute type name validation in client.
     AttributeTypePropertyDefinition.setCheckSchema(false);
 
-    LOG.log(Level.INFO, "Uninstaller is created.");
+    logger.debug(LocalizableMessage.raw("Uninstaller is created."));
   }
   /**
    * {@inheritDoc}
@@ -434,7 +433,7 @@
           catch (UserDataException uude) {
             throw uude;
           } catch (Throwable t) {
-            LOG.log(Level.WARNING, "Error processing task: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error processing task: "+t, t));
             throw new UserDataException(Step.CONFIRM_UNINSTALL,
                     getThrowableMsg(INFO_BUG_MSG.get(), t));
           }
@@ -451,8 +450,8 @@
             }
             else
             {
-              LOG.log(Level.WARNING, "Error processing task: "+throwable,
-                  throwable);
+              logger.warn(LocalizableMessage.raw("Error processing task: "+throwable,
+                  throwable));
               qs.displayError(LocalizableMessage.raw(throwable.toString()),
                       INFO_ERROR_TITLE.get());
             }
@@ -793,7 +792,7 @@
    */
   public void run() {
     runStarted = true;
-    LOG.log(Level.INFO, "run of the Uninstaller started");
+    logger.debug(LocalizableMessage.raw("run of the Uninstaller started"));
 
     initMaps();
     PrintStream origErr = System.err;
@@ -808,8 +807,8 @@
 
       boolean displaySeparator = false;
 
-      LOG.log(Level.INFO, "Update remote replication? "+
-          getUninstallUserData().getUpdateRemoteReplication());
+      logger.debug(LocalizableMessage.raw("Update remote replication? "+
+          getUninstallUserData().getUpdateRemoteReplication()));
       if (getUninstallUserData().getUpdateRemoteReplication())
       {
         status = UninstallProgressStep.UNCONFIGURING_REPLICATION;
@@ -817,7 +816,7 @@
         displaySeparator = true;
       }
 
-      LOG.log(Level.INFO, "Stop server? "+getUserData().getStopServer());
+      logger.debug(LocalizableMessage.raw("Stop server? "+getUserData().getStopServer()));
       if (getUserData().getStopServer()) {
         status = UninstallProgressStep.STOPPING_SERVER;
         if (displaySeparator && isVerbose()) {
@@ -841,8 +840,8 @@
         }
         displaySeparator = true;
       }
-      LOG.log(Level.INFO, "Is Windows Service Enabled? "+
-          isWindowsServiceEnabled());
+      logger.debug(LocalizableMessage.raw("Is Windows Service Enabled? "+
+          isWindowsServiceEnabled()));
       if (isWindowsServiceEnabled()) {
         status = UninstallProgressStep.DISABLING_WINDOWS_SERVICE;
         if (displaySeparator && isVerbose()) {
@@ -961,14 +960,14 @@
       }
 
     } catch (ApplicationException ex) {
-      LOG.log(Level.SEVERE, "Error: "+ex, ex);
+      logger.error(LocalizableMessage.raw("Error: "+ex, ex));
       ue = ex;
       status = UninstallProgressStep.FINISHED_WITH_ERROR;
       LocalizableMessage msg = getFormattedError(ex, true);
       notifyListeners(msg);
     }
     catch (Throwable t) {
-      LOG.log(Level.SEVERE, "Error: "+t, t);
+      logger.error(LocalizableMessage.raw("Error: "+t, t));
       ue = new ApplicationException(
               ReturnCode.BUG,
               getThrowableMsg(INFO_BUG_MSG.get(), t), t);
@@ -1472,7 +1471,7 @@
                 !equalsOrDescendant(file, parent);
       }
 
-      LOG.log(Level.INFO, "accept for :"+file+" is: "+accept);
+      logger.debug(LocalizableMessage.raw("accept for :"+file+" is: "+accept));
       return accept;
     }
   }
@@ -1617,7 +1616,7 @@
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.WARNING, "Could not find local server: "+ne, ne);
+        logger.warn(LocalizableMessage.raw("Could not find local server: "+ne, ne));
         getUninstallUserData().setLocalServerUrl("ldap://localhost:389");
       }
       getUninstallUserData().setReplicationServer(
@@ -1629,7 +1628,7 @@
       {
         public TopologyCache processBackgroundTask() throws Throwable
         {
-          LOG.log(Level.INFO, "Loading Topology Cache in askForAuthentication");
+          logger.debug(LocalizableMessage.raw("Loading Topology Cache in askForAuthentication"));
           ADSContext adsContext = new ADSContext(ctx);
           TopologyCache cache = new TopologyCache(adsContext,
               getTrustManager(), getConnectTimeout());
@@ -1642,7 +1641,7 @@
           qs.getDialog().workerFinished();
           if (throwable != null)
           {
-            LOG.log(Level.WARNING, "Throwable: "+throwable, throwable);
+            logger.warn(LocalizableMessage.raw("Throwable: "+throwable, throwable));
             if (throwable instanceof TopologyCacheException)
             {
               qs.displayError(
@@ -1656,7 +1655,7 @@
                   getThrowableMsg(INFO_BUG_MSG.get(), throwable),
                   INFO_ERROR_TITLE.get());
             }
-            LOG.log(Level.INFO, "Error was displayed");
+            logger.debug(LocalizableMessage.raw("Error was displayed"));
           }
           else
           {
@@ -1694,7 +1693,7 @@
    */
   private void handleTopologyCache(QuickSetup qs, TopologyCache cache)
   {
-    LOG.log(Level.INFO, "Handling TopologyCache");
+    logger.debug(LocalizableMessage.raw("Handling TopologyCache"));
     boolean stopProcessing = false;
     Set<TopologyCacheException> exceptions =
       new HashSet<TopologyCacheException>();
@@ -1716,7 +1715,7 @@
     /* Check the exceptions and see if we throw them or not. */
     for (TopologyCacheException e : exceptions)
     {
-      LOG.log(Level.INFO, "Analyzing exception: "+e, e);
+      logger.debug(LocalizableMessage.raw("Analyzing exception: "+e, e));
       if (stopProcessing)
       {
         break;
@@ -1738,7 +1737,7 @@
           {
             cause = e.getTrustManager().getLastRefusedCause();
           }
-          LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+          logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
           if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
           {
             excType = UserDataCertificateException.Type.NOT_TRUSTED;
@@ -1763,8 +1762,8 @@
             }
             catch (Throwable t)
             {
-              LOG.log(Level.WARNING,
-                  "Error parsing ldap url of TopologyCacheException.", t);
+              logger.warn(LocalizableMessage.raw(
+                  "Error parsing ldap url of TopologyCacheException.", t));
               h = INFO_NOT_AVAILABLE_LABEL.get().toString();
               p = -1;
             }
@@ -1827,14 +1826,14 @@
 
       if ((chain != null) && (authType != null) && (host != null))
       {
-        LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+        logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
         getTrustManager().acceptCertificate(chain, authType, host);
         BackgroundTask<TopologyCache> worker =
           new BackgroundTask<TopologyCache>()
         {
           public TopologyCache processBackgroundTask() throws Throwable
           {
-            LOG.log(Level.INFO, "Reloading topology");
+            logger.debug(LocalizableMessage.raw("Reloading topology"));
             cache.getFilter().setSearchMonitoringInformation(false);
             cache.reloadTopology();
             return cache;
@@ -1870,18 +1869,18 @@
       {
         if (chain == null)
         {
-          LOG.log(Level.WARNING,
-              "The chain is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The chain is null for the UserDataCertificateException"));
         }
         if (authType == null)
         {
-          LOG.log(Level.WARNING,
-              "The auth type is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The auth type is null for the UserDataCertificateException"));
         }
         if (host == null)
         {
-          LOG.log(Level.WARNING,
-              "The host is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The host is null for the UserDataCertificateException"));
         }
       }
     }
@@ -1897,7 +1896,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
@@ -1925,8 +1924,8 @@
     }
     if (serverADSProperties == null)
     {
-      LOG.log(Level.WARNING, "The server ADS properties for the server to "+
-          "uninstall could not be found.");
+      logger.warn(LocalizableMessage.raw("The server ADS properties for the server to "+
+          "uninstall could not be found."));
     }
 
     for (ServerDescriptor server : servers)
@@ -2003,11 +2002,11 @@
 
     if (!hasReferences)
     {
-      LOG.log(Level.INFO, "No references in: "+ server.getHostPort(true));
+      logger.debug(LocalizableMessage.raw("No references in: "+ server.getHostPort(true)));
     }
     if (hasReferences)
     {
-      LOG.log(Level.INFO, "Updating references in: "+ server.getHostPort(true));
+      logger.debug(LocalizableMessage.raw("Updating references in: "+ server.getHostPort(true)));
       notifyListeners(getFormattedWithPoints(
           INFO_PROGRESS_REMOVING_REFERENCES.get(server.getHostPort(true))));
       InitialLdapContext ctx = null;
@@ -2029,8 +2028,8 @@
       catch (ApplicationException ae)
       {
         errorOnRemoteOccurred = true;
-        LOG.log(Level.INFO, "Error updating replication references in: "+
-            server.getHostPort(true), ae);
+        logger.debug(LocalizableMessage.raw("Error updating replication references in: "+
+            server.getHostPort(true), ae));
 
         if (!getUninstallUserData().isForceOnError())
         {
@@ -2111,8 +2110,8 @@
           }
           if (replServer != null)
           {
-            LOG.log(Level.INFO, "Updating references in replication server on "+
-                serverDisplay+".");
+            logger.debug(LocalizableMessage.raw("Updating references in replication server on "+
+                serverDisplay+"."));
             replServers.remove(replServer);
             if (replServers.size() > 0)
             {
@@ -2149,8 +2148,8 @@
             }
             if (replServer != null)
             {
-              LOG.log(Level.INFO, "Updating references in domain " +
-                  domain.getBaseDN()+" on " + serverDisplay + ".");
+              logger.debug(LocalizableMessage.raw("Updating references in domain " +
+                  domain.getBaseDN()+" on " + serverDisplay + "."));
               replServers.remove(replServer);
               if (replServers.size() > 0)
               {
@@ -2170,14 +2169,14 @@
     catch (ManagedObjectNotFoundException monfe)
     {
       // It does not exist.
-      LOG.log(Level.INFO, "No synchronization found on "+ serverDisplay+".",
-          monfe);
+      logger.debug(LocalizableMessage.raw("No synchronization found on "+ serverDisplay+".",
+          monfe));
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
+      logger.warn(LocalizableMessage.raw(
           "Error removing references in replication server on "+
-          serverDisplay+": "+t, t);
+          serverDisplay+": "+t, t));
       LocalizableMessage errorMessage = INFO_ERROR_CONFIGURING_REMOTE_GENERIC.get(
               serverDisplay, t.toString());
       throw new ApplicationException(
@@ -2190,9 +2189,9 @@
     {
       if (adsContext.hasAdminData() && (serverADSProperties != null))
       {
-        LOG.log(Level.INFO, "Unregistering server on ADS of server "+
+        logger.debug(LocalizableMessage.raw("Unregistering server on ADS of server "+
             ConnectionUtils.getHostPort(ctx)+".  Properties: "+
-            serverADSProperties);
+            serverADSProperties));
         adsContext.unregisterServer(serverADSProperties);
       }
     }
@@ -2272,7 +2271,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Failing checking the port: "+t, t);
+        logger.warn(LocalizableMessage.raw("Failing checking the port: "+t, t));
       }
     }
     else
@@ -2306,7 +2305,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Failing checking host names: "+t, t);
+        logger.warn(LocalizableMessage.raw("Failing checking host names: "+t, t));
       }
       isServerToUninstall = hostNameEquals;
     }
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/ConfirmUninstallPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/ConfirmUninstallPanel.java
index 1b124b5..587736d 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/ConfirmUninstallPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/ConfirmUninstallPanel.java
@@ -42,11 +42,11 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.io.IOException;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import java.io.IOException;
+
 import static org.opends.messages.AdminToolMessages.*;
 
 /**
@@ -57,8 +57,7 @@
  */
 public class ConfirmUninstallPanel extends QuickSetupStepPanel
 {
-  private static final Logger LOG =
-          Logger.getLogger(ConfirmUninstallPanel.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final long serialVersionUID = 81730510134697056L;
 
@@ -224,13 +223,13 @@
     try {
       outsideDbs = config.getOutsideDbs();
     } catch (IOException ioe) {
-      LOG.log(Level.INFO, "Unable to determin outside databases", ioe);
+      logger.debug(LocalizableMessage.raw("Unable to determin outside databases", ioe));
     }
 
     try {
       outsideLogs = config.getOutsideLogs();
     } catch (IOException ioe) {
-      LOG.log(Level.INFO, "Unable to determin outside logs", ioe);
+      logger.debug(LocalizableMessage.raw("Unable to determin outside logs", ioe));
     }
 
 
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
index e2be57e..748c966 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
@@ -35,8 +35,9 @@
 import java.net.URI;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -70,7 +71,6 @@
 import org.opends.quicksetup.util.UIKeyStore;
 import org.opends.quicksetup.util.Utils;
 
-import org.forgerock.i18n.LocalizableMessage;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.QuickSetupMessages.*;
 
@@ -105,8 +105,7 @@
 
   private String usedUrl;
 
-  private static final Logger LOG =
-    Logger.getLogger(LoginDialog.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Constructor of the LoginDialog.
@@ -437,13 +436,13 @@
       {
         if (throwable != null)
         {
-          LOG.log(Level.INFO, "Error connecting: " + throwable, throwable);
+          logger.debug(LocalizableMessage.raw("Error connecting: " + throwable, throwable));
           if (Utils.isCertificateException(throwable))
           {
             ApplicationTrustManager.Cause cause =
               trustManager.getLastRefusedCause();
 
-            LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+            logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
             UserDataCertificateException.Type excType = null;
             if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
             {
@@ -473,8 +472,8 @@
               }
               catch (Throwable t)
               {
-                LOG.log(Level.WARNING,
-                    "Error parsing ldap url of ldap url.", t);
+                logger.warn(LocalizableMessage.raw(
+                    "Error parsing ldap url of ldap url.", t));
                 h = INFO_NOT_AVAILABLE_LABEL.get().toString();
                 p = -1;
               }
@@ -551,8 +550,8 @@
           else
           {
             // This is a bug
-            LOG.log(Level.SEVERE, "Unexpected throwable: "+throwable,
-                throwable);
+            logger.error(LocalizableMessage.raw("Unexpected throwable: "+throwable,
+                throwable));
             displayError(
                 Utils.getThrowableMsg(INFO_BUG_MSG.get(), throwable),
                 INFO_ERROR_TITLE.get());
@@ -667,7 +666,7 @@
 
       if ((chain != null) && (authType != null) && (host != null))
       {
-        LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+        logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
         getTrustManager().acceptCertificate(chain, authType, host);
         /* Simulate a click on the OK by calling in the okClicked method. */
         SwingUtilities.invokeLater(new Runnable()
@@ -682,18 +681,18 @@
       {
         if (chain == null)
         {
-          LOG.log(Level.WARNING,
-              "The chain is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The chain is null for the UserDataCertificateException"));
         }
         if (authType == null)
         {
-          LOG.log(Level.WARNING,
-              "The auth type is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The auth type is null for the UserDataCertificateException"));
         }
         if (host == null)
         {
-          LOG.log(Level.WARNING,
-              "The host is null for the UserDataCertificateException");
+          logger.warn(LocalizableMessage.raw(
+              "The host is null for the UserDataCertificateException"));
         }
       }
     }
@@ -709,7 +708,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Application.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Application.java
index c481094..9b737af 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Application.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Application.java
@@ -52,8 +52,8 @@
 import java.io.File;
 import java.util.LinkedHashSet;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -64,8 +64,7 @@
  */
 public abstract class Application implements ProgressNotifier, Runnable {
 
-  static private final Logger LOG =
-          Logger.getLogger(Application.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Represents current install state. */
   protected CurrentInstallStatus installStatus;
@@ -106,15 +105,15 @@
         appClass = Class.forName(appClassName);
         app = (GuiApplication) appClass.newInstance();
       } catch (ClassNotFoundException e) {
-        LOG.log(Level.INFO, "error creating quicksetup application", e);
+        logger.debug(LocalizableMessage.raw("error creating quicksetup application", e));
         String msg = "Application class " + appClass + " not found";
         throw new RuntimeException(msg, e);
       } catch (IllegalAccessException e) {
-        LOG.log(Level.INFO, "error creating quicksetup application", e);
+        logger.debug(LocalizableMessage.raw("error creating quicksetup application", e));
         String msg = "Could not access class " + appClass;
         throw new RuntimeException(msg, e);
       } catch (InstantiationException e) {
-        LOG.log(Level.INFO, "error creating quicksetup application", e);
+        logger.debug(LocalizableMessage.raw("error creating quicksetup application", e));
         String msg = "Error instantiating class " + appClass;
         throw new RuntimeException(msg, e);
       } catch (ClassCastException e) {
@@ -533,7 +532,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error retrieving UI key store: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error retrieving UI key store: "+t, t));
           trustManager = new ApplicationTrustManager(null);
         }
       }
@@ -837,7 +836,7 @@
 
       notifyListeners(mb.toMessage());
       applicationPrintStreamReceived(msg);
-      LOG.log(Level.INFO, msg);
+      logger.debug(LocalizableMessage.raw(msg));
       isFirstLine = false;
     }
 
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/BuildInformation.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/BuildInformation.java
index e9b0688..a979047 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/BuildInformation.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/BuildInformation.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 
 package org.opends.quicksetup;
@@ -38,8 +38,9 @@
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 import java.io.InputStream;
@@ -54,8 +55,7 @@
  */
 public class BuildInformation implements Comparable<BuildInformation> {
 
-  static private final Logger LOG =
-          Logger.getLogger(BuildInformation.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Reads build information for a particular installation by reading the
@@ -107,7 +107,7 @@
               }
               catch (Throwable t)
               {
-                LOG.log(Level.WARNING, "Error writing to process: "+t, t);
+                logger.warn(LocalizableMessage.raw("Error writing to process: "+t, t));
               }
             }
           }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CliUserInteraction.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CliUserInteraction.java
index 6f3ca66..ce7f084 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CliUserInteraction.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CliUserInteraction.java
@@ -41,16 +41,15 @@
 import org.opends.server.util.cli.MenuResult;
 
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * Supports user interactions for a command line driven application.
  */
 public class CliUserInteraction extends ConsoleApplication
         implements UserInteraction {
-  static private final Logger LOG =
-    Logger.getLogger(CliUserInteraction.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final boolean isInteractive;
   private final boolean isForceOnError;
@@ -142,7 +141,7 @@
       catch (CLIException ce)
       {
         respInt = defInt;
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
       if (fineDetails != null && respInt == options.length + 1) {
         println();
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CurrentInstallStatus.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CurrentInstallStatus.java
index e82e7fb..b7a3ec2 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CurrentInstallStatus.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/CurrentInstallStatus.java
@@ -34,8 +34,8 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.quicksetup.util.Utils;
 
@@ -51,8 +51,7 @@
 
 public class CurrentInstallStatus
 {
-  static private final Logger LOG =
-          Logger.getLogger(CurrentInstallStatus.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private boolean isInstalled;
 
@@ -177,7 +176,7 @@
       port = Installation.getLocal().getCurrentConfiguration().
               getPort();
     } catch (IOException ioe) {
-      LOG.log(Level.INFO, "Failed to get port", ioe);
+      logger.debug(LocalizableMessage.raw("Failed to get port", ioe));
     }
     return port;
   }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Installation.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Installation.java
index 9b854fc..6bece6e 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Installation.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Installation.java
@@ -33,10 +33,10 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.FutureTask;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.util.SetupUtils;
 
@@ -395,8 +395,7 @@
 
 
 
-  static private final Logger LOG = Logger.getLogger(Installation.class
-      .getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private File rootDirectory;
 
@@ -491,12 +490,12 @@
       try
       {
         BuildInformation bi = getBuildInformation();
-        LOG.log(Level.INFO, "build info for " + rootDirectory.getName() + ": "
-            + bi);
+        logger.debug(LocalizableMessage.raw("build info for " + rootDirectory.getName() + ": "
+            + bi));
       }
       catch (ApplicationException e)
       {
-        LOG.log(Level.INFO, "error determining build information", e);
+        logger.debug(LocalizableMessage.raw("error determining build information", e));
       }
     }
   }
@@ -524,12 +523,12 @@
       try
       {
         BuildInformation bi = getBuildInformation();
-        LOG.log(Level.INFO, "build info for " + instanceDirectory.getName()
-            + ": " + bi);
+        logger.debug(LocalizableMessage.raw("build info for " + instanceDirectory.getName()
+            + ": " + bi));
       }
       catch (ApplicationException e)
       {
-        LOG.log(Level.INFO, "error determining build information", e);
+        logger.debug(LocalizableMessage.raw("error determining build information", e));
       }
     }
   }
@@ -1142,7 +1141,7 @@
       }
       catch (InterruptedException e)
       {
-        LOG.log(Level.INFO, "interrupted trying to get build information", e);
+        logger.debug(LocalizableMessage.raw("interrupted trying to get build information", e));
       }
       catch (ExecutionException e)
       {
@@ -1215,8 +1214,8 @@
       }
       catch (Exception e)
       {
-        LOG.log(Level.SEVERE, "error getting build information for "
-            + "current instance", e);
+        logger.error(LocalizableMessage.raw("error getting build information for "
+            + "current instance", e));
       }
     }
     return instanceInformation;
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Launcher.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Launcher.java
index a6caa8b..c59afcf 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Launcher.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/Launcher.java
@@ -38,8 +38,8 @@
 
 import java.io.PrintStream;
 import java.io.File;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * Responsible for providing initial evaluation of command line arguments
@@ -47,7 +47,7 @@
  */
 public abstract class Launcher {
 
-  static private final Logger LOG = Logger.getLogger(Launcher.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Arguments with which this launcher was invoked. */
   protected String[] args;
@@ -212,7 +212,7 @@
         {
           if (QuickSetupLog.isInitialized())
           {
-            LOG.log(Level.WARNING, "Error launching GUI: "+t);
+            logger.warn(LocalizableMessage.raw("Error launching GUI: "+t));
             StringBuilder buf = new StringBuilder();
             while (t != null)
             {
@@ -227,7 +227,7 @@
                 buf.append("Root cause:\n");
               }
             }
-            LOG.log(Level.WARNING, buf.toString());
+            logger.warn(LocalizableMessage.raw(buf.toString()));
           }
         }
       }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
index c92d908..eaeeea8 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
@@ -27,8 +27,9 @@
 
 package org.opends.quicksetup;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.quicksetup.util.ProgressMessageFormatter;
 import org.opends.quicksetup.util.PlainTextProgressMessageFormatter;
@@ -37,7 +38,6 @@
 import org.opends.quicksetup.event.ProgressUpdateEvent;
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.cli.CLIException;
-import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * Class used by Launcher to start a CLI application.
@@ -52,8 +52,7 @@
 
   private UserData userData;
 
-  static private final Logger LOG =
-    Logger.getLogger(QuickSetupCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a QuickSetupCli instance.
@@ -108,7 +107,7 @@
                   });
         }
         Thread appThread = new Thread(cliApp, "CLI Application");
-        LOG.log(Level.INFO, "Launching application");
+        logger.debug(LocalizableMessage.raw("Launching application"));
         appThread.start();
         while (!Thread.State.TERMINATED.equals(appThread.getState())) {
           try {
@@ -118,12 +117,12 @@
           }
         }
         returnValue = cliApp.getReturnCode();
-        LOG.log(Level.INFO, "Application returnValue: "+returnValue);
+        logger.debug(LocalizableMessage.raw("Application returnValue: "+returnValue));
         if (returnValue == null) {
           ApplicationException ue = cliApp.getRunError();
           if (ue != null)
           {
-            LOG.log(Level.INFO, "Application run error: "+ue, ue);
+            logger.debug(LocalizableMessage.raw("Application run error: "+ue, ue));
             returnValue = ue.getType();
           }
           else
@@ -140,7 +139,7 @@
     }
     catch (UserDataException uude)
     {
-      LOG.log(Level.SEVERE, "UserDataException: "+uude, uude);
+      logger.error(LocalizableMessage.raw("UserDataException: "+uude, uude));
       System.err.println();
       System.err.println(StaticUtils.wrapText(uude.getLocalizedMessage(),
               Utils.getCommandLineMaxLineWidth()));
@@ -156,7 +155,7 @@
     }
     catch (ApplicationException ae)
     {
-      LOG.log(Level.SEVERE, "ApplicationException: "+ae, ae);
+      logger.error(LocalizableMessage.raw("ApplicationException: "+ae, ae));
       System.err.println();
       System.err.println(ae.getLocalizedMessage());
       System.err.println();
@@ -164,10 +163,10 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.SEVERE, "Unexpected error: "+t, t);
+      logger.error(LocalizableMessage.raw("Unexpected error: "+t, t));
       returnValue = ReturnCode.UNKNOWN;
     }
-    LOG.log(Level.INFO, "returnValue: "+returnValue.getReturnCode());
+    logger.debug(LocalizableMessage.raw("returnValue: "+returnValue.getReturnCode()));
     return returnValue;
   }
 
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
index ca14aef..3af9a5f 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 
 package org.opends.quicksetup;
@@ -30,9 +30,9 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.logging.FileHandler;
-import java.util.logging.SimpleFormatter;
 import java.util.logging.Logger;
-import java.util.logging.Level;
+import java.util.logging.SimpleFormatter;
+
 import java.util.Date;
 import java.text.DateFormat;
 
@@ -59,7 +59,7 @@
       logger.addHandler(fileHandler);
       disableConsoleLogging();
       logger = Logger.getLogger("org.opends.quicksetup");
-      logger.log(Level.INFO, getInitialLogRecord());
+      logger.info(getInitialLogRecord());
     }
   }
 
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index f6b0540..1ffba98 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -33,8 +33,9 @@
 import java.io.IOException;
 import java.net.URI;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.*;
 import javax.naming.directory.*;
@@ -46,7 +47,6 @@
 import org.opends.admin.ads.util.ApplicationTrustManager;
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.opends.admin.ads.util.PreferredConnection;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.quicksetup.*;
 import org.opends.quicksetup.event.ButtonActionListener;
@@ -101,7 +101,7 @@
   // Constants used to do checks
   private static final int MIN_DIRECTORY_MANAGER_PWD = 1;
 
-  private static final Logger LOG = Logger.getLogger(Installer.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The minimum integer value that can be used for a port.
@@ -232,7 +232,7 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.WARNING, "Error getting connect timeout: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error getting connect timeout: "+t, t));
           }
         }
         break;
@@ -789,7 +789,7 @@
       try {
         new InstallerHelper().disableWindowsService();
       } catch (ApplicationException ae) {
-        LOG.log(Level.INFO, "Error disabling Windows service", ae);
+        logger.debug(LocalizableMessage.raw("Error disabling Windows service", ae));
       }
     }
 
@@ -1000,7 +1000,7 @@
       }
       nextPassword = "-w".equals(s);
     }
-    LOG.log(Level.INFO, "configure DS cmd: "+cmd);
+    logger.debug(LocalizableMessage.raw("configure DS cmd: "+cmd));
     final InstallerHelper helper = new InstallerHelper();
     setNotifyListeners(false);
     InvokeThread thread = new InvokeThread()
@@ -1199,7 +1199,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.SEVERE, "Error configuring certificate: "+t, t);
+      logger.error(LocalizableMessage.raw("Error configuring certificate: "+t, t));
       throw new ApplicationException(
           ReturnCode.CONFIGURATION_ERROR,
           getThrowableMsg(INFO_ERROR_CONFIGURING_CERTIFICATE.get(),
@@ -1959,8 +1959,8 @@
           {
             replicationPort = Constants.DEFAULT_REPLICATION_PORT;
             enableSecureReplication = false;
-            LOG.log(Level.WARNING, "Could not find replication port for: "+
-                getHostPort(server));
+            logger.warn(LocalizableMessage.raw("Could not find replication port for: "+
+                getHostPort(server)));
           }
         }
         Set<String> dns = new HashSet<String>();
@@ -1994,8 +1994,8 @@
           }
           else
           {
-            LOG.log(Level.WARNING, "Could not find replication server for: "+
-                dn);
+            logger.warn(LocalizableMessage.raw("Could not find replication server for: "+
+                dn));
           }
         }
 
@@ -2198,7 +2198,7 @@
     }
     catch (IOException ioe)
     {
-      LOG.log(Level.WARNING, "Error writing host name file: "+ioe, ioe);
+      logger.warn(LocalizableMessage.raw("Error writing host name file: "+ioe, ioe));
     }
     finally
     {
@@ -2232,7 +2232,7 @@
       InstallerHelper helper = new InstallerHelper();
       helper.writeSetOpenDSJavaHome(getUserData(), getInstallationPath());
     } catch (Exception e) {
-      LOG.log(Level.WARNING, "Error writing OpenDJ Java Home file: "+e, e);
+      logger.warn(LocalizableMessage.raw("Error writing OpenDJ Java Home file: "+e, e));
     }
   }
 
@@ -2512,17 +2512,17 @@
         {
           try
           {
-            LOG.log(Level.INFO, "Calling initializeSuffix with base DN: "+dn);
-            LOG.log(Level.INFO, "Try number: "+(6 - nTries));
-            LOG.log(Level.INFO, "replicationId of source replica: "+
-                replicationId);
+            logger.debug(LocalizableMessage.raw("Calling initializeSuffix with base DN: "+dn));
+            logger.debug(LocalizableMessage.raw("Try number: "+(6 - nTries)));
+            logger.debug(LocalizableMessage.raw("replicationId of source replica: "+
+                replicationId));
             initializeSuffix(ctx, replicationId, dn, !isADS && !isSchema,
                 hostPort);
             initDone = true;
           }
           catch (PeerNotFoundException pnfe)
           {
-            LOG.log(Level.INFO, "Peer could not be found");
+            logger.debug(LocalizableMessage.raw("Peer could not be found"));
             if (nTries == 1)
             {
               throw new ApplicationException(
@@ -2650,8 +2650,8 @@
       if (0 == adsContext.registerOrUpdateServer(server.getAdsProperties())) {
         if (isRemoteServer) registeredNewServerOnRemote = true;
       } else {
-        LOG.log(Level.WARNING, "Server was already registered. Updating " +
-                "server registration.");
+        logger.warn(LocalizableMessage.raw("Server was already registered. Updating " +
+                "server registration."));
       }
       if (isRemoteServer)
       {
@@ -3582,7 +3582,7 @@
               {
                 cause = e.getTrustManager().getLastRefusedCause();
               }
-              LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+              logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
               if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
               {
                 excType = UserDataCertificateException.Type.NOT_TRUSTED;
@@ -3608,8 +3608,8 @@
                 }
                 catch (Throwable t)
                 {
-                  LOG.log(Level.WARNING,
-                      "Error parsing ldap url of TopologyCacheException.", t);
+                  logger.warn(LocalizableMessage.raw(
+                      "Error parsing ldap url of TopologyCacheException.", t));
                   h = INFO_NOT_AVAILABLE_LABEL.get().toString();
                   p = -1;
                 }
@@ -3645,13 +3645,13 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.INFO, "Error connecting to remote server.", t);
+      logger.debug(LocalizableMessage.raw("Error connecting to remote server.", t));
       if (isCertificateException(t))
       {
         UserDataCertificateException.Type excType;
         ApplicationTrustManager.Cause cause =
           trustManager.getLastRefusedCause();
-        LOG.log(Level.INFO, "Certificate exception cause: "+cause);
+        logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
         if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
         {
           excType = UserDataCertificateException.Type.NOT_TRUSTED;
@@ -4418,16 +4418,16 @@
       {
         DirContext dirCtx = ctx.createSubcontext(dn, attrs);
         taskCreated = true;
-        LOG.log(Level.INFO, "created task entry: "+attrs);
+        logger.debug(LocalizableMessage.raw("created task entry: "+attrs));
         dirCtx.close();
       }
       catch (NameAlreadyBoundException x)
       {
-        LOG.log(Level.WARNING, "A task with dn: "+dn+" already existed.");
+        logger.warn(LocalizableMessage.raw("A task with dn: "+dn+" already existed."));
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ne));
         throw new ApplicationException(
             ReturnCode.APPLICATION_ERROR,
                 getThrowableMsg(INFO_ERROR_LAUNCHING_INITIALIZATION.get(
@@ -4556,7 +4556,7 @@
           if (((currentTime - minRefreshPeriod) > lastTimeMsgLogged))
           {
             lastTimeMsgLogged = currentTime;
-            LOG.log(Level.INFO, "Progress msg: "+msg);
+            logger.debug(LocalizableMessage.raw("Progress msg: "+msg));
           }
           if (displayProgress)
           {
@@ -4576,7 +4576,7 @@
         {
           if (!logMsg.equals(lastLogMsg))
           {
-            LOG.log(Level.INFO, logMsg);
+            logger.debug(LocalizableMessage.raw(logMsg));
             lastLogMsg = logMsg;
           }
         }
@@ -4587,7 +4587,7 @@
         {
           isOver = true;
           LocalizableMessage errorMsg;
-          LOG.log(Level.INFO, "Last task entry: "+sr);
+          logger.debug(LocalizableMessage.raw("Last task entry: "+sr));
           if (displayProgress && (msg != null) && !msg.equals(lastDisplayedMsg))
           {
             notifyListeners(getFormattedProgress(msg));
@@ -4607,7 +4607,7 @@
                     sourceServerDisplay);
           }
 
-          LOG.log(Level.WARNING, "Processed errorMsg: "+errorMsg);
+          logger.warn(LocalizableMessage.raw("Processed errorMsg: "+errorMsg));
           if (helper.isCompletedWithErrors(state))
           {
             if (displayProgress)
@@ -4624,20 +4624,20 @@
             if ((lastLogMsg == null) ||
                 helper.isPeersNotFoundError(lastLogMsg))
             {
-              LOG.log(Level.WARNING, "Throwing peer not found error.  "+
-                  "Last Log Msg: "+lastLogMsg);
+              logger.warn(LocalizableMessage.raw("Throwing peer not found error.  "+
+                  "Last Log Msg: "+lastLogMsg));
               // Assume that this is a peer not found error.
               throw new PeerNotFoundException(errorMsg);
             }
             else
             {
-              LOG.log(Level.SEVERE, "Throwing ApplicationException.");
+              logger.error(LocalizableMessage.raw("Throwing ApplicationException."));
               throw ae;
             }
           }
           else if (displayProgress)
           {
-            LOG.log(Level.INFO, "Initialization completed successfully.");
+            logger.debug(LocalizableMessage.raw("Initialization completed successfully."));
             notifyListeners(getFormattedProgress(
                 INFO_SUFFIX_INITIALIZED_SUCCESSFULLY.get()));
             notifyListeners(getLineBreak());
@@ -4647,7 +4647,7 @@
       catch (NameNotFoundException x)
       {
         isOver = true;
-        LOG.log(Level.INFO, "Initialization entry not found.");
+        logger.debug(LocalizableMessage.raw("Initialization entry not found."));
         if (displayProgress)
         {
           notifyListeners(getFormattedProgress(
@@ -4727,7 +4727,7 @@
       {
         DirContext dirCtx = ctx.createSubcontext(dn, attrs);
         taskCreated = true;
-        LOG.log(Level.INFO, "created task entry: "+attrs);
+        logger.debug(LocalizableMessage.raw("created task entry: "+attrs));
         dirCtx.close();
       }
       catch (NameAlreadyBoundException x)
@@ -4735,7 +4735,7 @@
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ne));
         throw new ApplicationException(
             ReturnCode.APPLICATION_ERROR,
                 getThrowableMsg(INFO_ERROR_LAUNCHING_INITIALIZATION.get(
@@ -4779,7 +4779,7 @@
         {
           if (!logMsg.equals(lastLogMsg))
           {
-            LOG.log(Level.INFO, logMsg);
+            logger.debug(LocalizableMessage.raw(logMsg));
             lastLogMsg = logMsg;
           }
         }
@@ -4804,13 +4804,13 @@
 
           if (helper.isCompletedWithErrors(state))
           {
-            LOG.log(Level.WARNING, "Completed with error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Completed with error: "+errorMsg));
             notifyListeners(getFormattedWarning(errorMsg));
           }
           else if (!helper.isSuccessful(state) ||
               helper.isStoppedByError(state))
           {
-            LOG.log(Level.WARNING, "Error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Error: "+errorMsg));
             throw new ApplicationException(
                 ReturnCode.APPLICATION_ERROR, errorMsg,
                 null);
@@ -4856,7 +4856,7 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.WARNING, "Error cancelling thread: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error cancelling thread: "+t, t));
           }
         }
         else if (thread.getException() != null)
@@ -4879,12 +4879,12 @@
     }
     catch (ApplicationException e)
     {
-      LOG.log(Level.SEVERE, "Error: "+e, e);
+      logger.error(LocalizableMessage.raw("Error: "+e, e));
       throw e;
     }
     catch (Throwable t)
     {
-      LOG.log(Level.SEVERE, "Error: "+t, t);
+      logger.error(LocalizableMessage.raw("Error: "+t, t));
       throw new ApplicationException(ReturnCode.BUG,
           Utils.getThrowableMsg(INFO_BUG_MSG.get(), t), t);
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
index 9f1ecb1..e8e7c6d 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
@@ -36,8 +36,9 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.ldap.InitialLdapContext;
 
@@ -65,7 +66,6 @@
 import org.opends.messages.CoreMessages;
 import org.opends.messages.JebMessages;
 import org.opends.messages.ReplicationMessages;
-import org.forgerock.i18n.LocalizableMessage;
 import static org.opends.messages.QuickSetupMessages.*;
 
 import org.opends.server.tools.ConfigureDS;
@@ -94,8 +94,7 @@
  * are not necessarily loaded when we create this class.
  */
 public class InstallerHelper {
-  private static final Logger LOG = Logger.getLogger(
-      InstallerHelper.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final int MAX_ID_VALUE = Short.MAX_VALUE;
 
@@ -147,7 +146,7 @@
 
     String[] allArgs = new String[argList.size()];
     argList.toArray(allArgs);
-    LOG.log(Level.INFO, "import-ldif arg list: "+argList);
+    logger.debug(LocalizableMessage.raw("import-ldif arg list: "+argList));
     ProcessBuilder pb = new ProcessBuilder(allArgs);
     Map<String, String> env = pb.environment();
     env.remove(SetupUtils.OPENDJ_JAVA_HOME);
@@ -165,7 +164,7 @@
         @Override
         public void processLine(String line)
         {
-          LOG.log(Level.WARNING, "import-ldif error log: "+line);
+          logger.warn(LocalizableMessage.raw("import-ldif error log: "+line));
           application.notifyListeners(LocalizableMessage.raw(line));
           application.notifyListeners(application.getLineBreak());
         }
@@ -177,7 +176,7 @@
         @Override
         public void processLine(String line)
         {
-          LOG.log(Level.INFO, "import-ldif out log: "+line);
+          logger.debug(LocalizableMessage.raw("import-ldif out log: "+line));
           application.notifyListeners(LocalizableMessage.raw(line));
           application.notifyListeners(application.getLineBreak());
         }
@@ -194,7 +193,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error closing error stream: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error closing error stream: "+t, t));
         }
         try
         {
@@ -202,7 +201,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error closing output stream: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error closing output stream: "+t, t));
         }
       }
     }
@@ -1185,8 +1184,8 @@
       returnValue !=
         JavaPropertiesTool.ErrorReturnCode.SUCCESSFUL_NOP.getReturnCode())
     {
-      LOG.log(Level.WARNING, "Error creating java home scripts, error code: "+
-          returnValue);
+      logger.warn(LocalizableMessage.raw("Error creating java home scripts, error code: "+
+          returnValue));
       throw new IOException(
           ERR_ERROR_CREATING_JAVA_HOME_SCRIPTS.get(returnValue).toString());
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
index 97a5928..7661f8c 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
@@ -37,8 +37,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import java.security.KeyStoreException;
 
 import org.opends.quicksetup.ApplicationException;
@@ -80,8 +80,7 @@
 
   private ApplicationException runError;
 
-  private static final Logger LOG =
-    Logger.getLogger(OfflineInstaller.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Actually performs the install in this thread.  The thread is blocked.
@@ -228,7 +227,7 @@
 
     } catch (ApplicationException ex)
     {
-      LOG.log(Level.SEVERE, "Caught exception: "+ex, ex);
+      logger.error(LocalizableMessage.raw("Caught exception: "+ex, ex));
       if (ReturnCode.CANCELED.equals(ex.getType())) {
         uninstall();
         setCurrentProgressStep(InstallProgressStep.FINISHED_CANCELED);
@@ -249,7 +248,7 @@
               notifyListeners(getFormattedDoneWithLineBreak());
             }
           } catch (Throwable t) {
-            LOG.log(Level.INFO, "error stopping server", t);
+            logger.debug(LocalizableMessage.raw("error stopping server", t));
           }
         }
         notifyListeners(getLineBreak());
@@ -257,7 +256,7 @@
         setCurrentProgressStep(InstallProgressStep.FINISHED_WITH_ERROR);
         LocalizableMessage html = getFormattedError(ex, true);
         notifyListeners(html);
-        LOG.log(Level.SEVERE, "Error installing.", ex);
+        logger.error(LocalizableMessage.raw("Error installing.", ex));
         notifyListeners(getLineBreak());
         notifyListenersOfLogAfterError();
       }
@@ -280,7 +279,7 @@
             notifyListeners(getFormattedDoneWithLineBreak());
           }
         } catch (Throwable t2) {
-          LOG.log(Level.INFO, "error stopping server", t2);
+          logger.debug(LocalizableMessage.raw("error stopping server", t2));
         }
       }
       notifyListeners(getLineBreak());
@@ -291,7 +290,7 @@
           Utils.getThrowableMsg(INFO_BUG_MSG.get(), t), t);
       LocalizableMessage msg = getFormattedError(ex, true);
       notifyListeners(msg);
-      LOG.log(Level.SEVERE, "Error installing.", t);
+      logger.error(LocalizableMessage.raw("Error installing.", t));
       notifyListeners(getLineBreak());
       notifyListenersOfLogAfterError();
       runError = ex;
@@ -363,7 +362,7 @@
           notifyListeners(getFormattedDoneWithLineBreak());
         }
       } catch (ApplicationException e) {
-        LOG.log(Level.INFO, "error stopping server", e);
+        logger.debug(LocalizableMessage.raw("error stopping server", e));
       }
     }
 
@@ -377,7 +376,7 @@
       fm.rename(newConfig, installation.getCurrentConfigurationFile());
 
     } catch (ApplicationException ae) {
-      LOG.log(Level.INFO, "failed to restore base configuration", ae);
+      logger.debug(LocalizableMessage.raw("failed to restore base configuration", ae));
     }
 
     // Cleanup SSL if necessary
@@ -392,7 +391,7 @@
         try {
           cm.removeCertificate(SELF_SIGNED_CERT_ALIAS);
         } catch (KeyStoreException e) {
-          LOG.log(Level.INFO, "Error deleting self signed certification", e);
+          logger.debug(LocalizableMessage.raw("Error deleting self signed certification", e));
         }
       }
 
@@ -402,7 +401,7 @@
         try {
           fm.delete(keystore);
         } catch (ApplicationException e) {
-          LOG.log(Level.INFO, "Failed to delete keystore", e);
+          logger.debug(LocalizableMessage.raw("Failed to delete keystore", e));
         }
       }
 
@@ -412,7 +411,7 @@
         try {
           fm.delete(keystorePin);
         } catch (ApplicationException e) {
-          LOG.log(Level.INFO, "Failed to delete keystore.pin", e);
+          logger.debug(LocalizableMessage.raw("Failed to delete keystore.pin", e));
         }
       }
 
@@ -422,7 +421,7 @@
         try {
           fm.delete(truststore);
         } catch (ApplicationException e) {
-          LOG.log(Level.INFO, "Failed to delete truststore", e);
+          logger.debug(LocalizableMessage.raw("Failed to delete truststore", e));
         }
       }
     }
@@ -431,7 +430,7 @@
     try {
       fm.deleteChildren(installation.getDatabasesDirectory());
     } catch (ApplicationException e) {
-      LOG.log(Level.INFO, "Error deleting databases", e);
+      logger.debug(LocalizableMessage.raw("Error deleting databases", e));
     }
 
     if (!isVerbose())
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
index fb57022..df907e2 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
@@ -35,8 +35,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.quicksetup.ApplicationException;
 import org.opends.quicksetup.LicenseFile;
@@ -51,7 +52,6 @@
 import org.opends.quicksetup.util.FileManager;
 import org.opends.server.util.SetupUtils;
 
-import org.forgerock.i18n.LocalizableMessage;
 import static org.opends.messages.QuickSetupMessages.*;
 
 /**
@@ -87,8 +87,7 @@
   private final Map<ProgressStep, LocalizableMessage> hmSummary =
       new HashMap<ProgressStep, LocalizableMessage>();
 
-  private static final Logger LOG =
-    Logger.getLogger(WebStartInstaller.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * WebStartInstaller constructor.
@@ -144,7 +143,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.INFO, "Error closing zip input stream: "+t, t);
+        logger.debug(LocalizableMessage.raw("Error closing zip input stream: "+t, t));
       }
 
       checkAbort();
@@ -294,7 +293,7 @@
               notifyListeners(getFormattedDoneWithLineBreak());
             }
           } catch (Throwable t) {
-            LOG.log(Level.INFO, "error stopping server", t);
+            logger.debug(LocalizableMessage.raw("error stopping server", t));
           }
         }
         notifyListeners(getLineBreak());
@@ -302,7 +301,7 @@
         setCurrentProgressStep(InstallProgressStep.FINISHED_WITH_ERROR);
         LocalizableMessage html = getFormattedError(ex, true);
         notifyListeners(html);
-        LOG.log(Level.SEVERE, "Error installing.", ex);
+        logger.error(LocalizableMessage.raw("Error installing.", ex));
         notifyListeners(getLineBreak());
         notifyListenersOfLogAfterError();
       }
@@ -315,7 +314,7 @@
         try {
           new ServerController(installation).stopServer(true);
         } catch (Throwable t2) {
-          LOG.log(Level.INFO, "error stopping server", t2);
+          logger.debug(LocalizableMessage.raw("error stopping server", t2));
         }
       }
       notifyListeners(getLineBreak());
@@ -326,7 +325,7 @@
           Utils.getThrowableMsg(INFO_BUG_MSG.get(), t), t);
       LocalizableMessage msg = getFormattedError(ex, true);
       notifyListeners(msg);
-      LOG.log(Level.SEVERE, "Error installing.", t);
+      logger.error(LocalizableMessage.raw("Error installing.", t));
       notifyListeners(getLineBreak());
       notifyListenersOfLogAfterError();
     }
@@ -576,7 +575,7 @@
         try {
           new ServerController(installation).stopServer(true);
         } catch (ApplicationException e) {
-          LOG.log(Level.INFO, "error stopping server", e);
+          logger.debug(LocalizableMessage.raw("error stopping server", e));
         }
       }
 
@@ -586,7 +585,7 @@
         fm.deleteRecursively(installation.getRootDirectory(), null,
             FileManager.DeletionPolicy.DELETE_ON_EXIT_IF_UNSUCCESSFUL);
       } catch (ApplicationException e) {
-        LOG.log(Level.INFO, "error deleting files", e);
+        logger.debug(LocalizableMessage.raw("error deleting files", e));
       }
     }
     else
@@ -608,7 +607,7 @@
           fm.deleteRecursively(serverRoot, null,
               FileManager.DeletionPolicy.DELETE_ON_EXIT_IF_UNSUCCESSFUL);
         } catch (ApplicationException e) {
-          LOG.log(Level.INFO, "error deleting files", e);
+          logger.debug(LocalizableMessage.raw("error deleting files", e));
         }
       }
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/CertificateDialog.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/CertificateDialog.java
index 79c2173..628a971 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/CertificateDialog.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/CertificateDialog.java
@@ -44,8 +44,9 @@
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
@@ -66,7 +67,6 @@
 import org.opends.quicksetup.UserDataCertificateException;
 import org.opends.quicksetup.event.MinimumSizeComponentListener;
 
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import static org.opends.messages.QuickSetupMessages.*;
 
@@ -105,8 +105,7 @@
   private String explanationWithHideDetails;
   private String explanationWithShowDetails;
 
-  private static final Logger LOG = Logger.getLogger(
-      CertificateDialog.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Constructor of the certificate dialog.
@@ -630,10 +629,10 @@
       msg = LocalizableMessage.raw(sb);
     }
     catch (NoSuchAlgorithmException nsae) {
-      LOG.log(Level.WARNING, "SHA1 algorithm not supported: "+nsae, nsae);
+      logger.warn(LocalizableMessage.raw("SHA1 algorithm not supported: "+nsae, nsae));
     }
     catch (CertificateEncodingException cee) {
-      LOG.log(Level.WARNING, "Certificate encoding exception: "+cee, cee);
+      logger.warn(LocalizableMessage.raw("Certificate encoding exception: "+cee, cee));
     }
     return msg;
   }
@@ -662,10 +661,10 @@
       msg = LocalizableMessage.raw(sb);
     }
     catch (NoSuchAlgorithmException nsae) {
-      LOG.log(Level.WARNING, "MD5 algorithm not supported: "+nsae, nsae);
+      logger.warn(LocalizableMessage.raw("MD5 algorithm not supported: "+nsae, nsae));
     }
     catch (CertificateEncodingException cee) {
-      LOG.log(Level.WARNING, "Certificate encoding exception: "+cee, cee);
+      logger.warn(LocalizableMessage.raw("Certificate encoding exception: "+cee, cee));
     }
     return msg;
   }
@@ -703,8 +702,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error parsing subject dn: "+
-          cert.getSubjectX500Principal(), t);
+      logger.warn(LocalizableMessage.raw("Error parsing subject dn: "+
+          cert.getSubjectX500Principal(), t));
     }
     return name;
   }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
index d75c29f..ddc8d5a 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
@@ -44,8 +44,8 @@
 import java.security.cert.X509Certificate;
 import java.util.LinkedHashSet;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This class represents an application with a wizard GUI that can be run in the
@@ -54,8 +54,7 @@
  */
 public abstract class GuiApplication extends Application {
 
-  static private final Logger LOG =
-          Logger.getLogger(GuiApplication.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The currently displayed wizard step. */
   private WizardStep displayedStep;
@@ -432,25 +431,25 @@
 
     if ((chain != null) && (authType != null) && (host != null))
     {
-      LOG.log(Level.INFO, "Accepting certificate presented by host "+host);
+      logger.debug(LocalizableMessage.raw("Accepting certificate presented by host "+host));
       getTrustManager().acceptCertificate(chain, authType, host);
     }
     else
     {
       if (chain == null)
       {
-        LOG.log(Level.WARNING,
-            "The chain is null for the UserDataCertificateException");
+        logger.warn(LocalizableMessage.raw(
+            "The chain is null for the UserDataCertificateException"));
       }
       if (authType == null)
       {
-        LOG.log(Level.WARNING,
-            "The auth type is null for the UserDataCertificateException");
+        logger.warn(LocalizableMessage.raw(
+            "The auth type is null for the UserDataCertificateException"));
       }
       if (host == null)
       {
-        LOG.log(Level.WARNING,
-            "The host is null for the UserDataCertificateException");
+        logger.warn(LocalizableMessage.raw(
+            "The host is null for the UserDataCertificateException"));
       }
     }
     if (acceptPermanently)
@@ -463,7 +462,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+          logger.warn(LocalizableMessage.raw("Error accepting certificate: "+t, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetup.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetup.java
index 9ebda8c..fda7824 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetup.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetup.java
@@ -47,8 +47,8 @@
 import java.awt.Cursor;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import java.util.logging.Handler;
 import java.util.Map;
 
@@ -75,8 +75,7 @@
 public class QuickSetup implements ButtonActionListener, ProgressUpdateListener
 {
 
-  static private final Logger LOG =
-          Logger.getLogger(QuickSetup.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private GuiApplication application;
 
@@ -492,13 +491,14 @@
    */
   public void quit()
   {
-    LOG.log(Level.INFO, "quitting application");
+    logger.debug(LocalizableMessage.raw("quitting application"));
     flushLogs();
     System.exit(0);
   }
 
   private void flushLogs() {
-    Handler[] handlers = LOG.getHandlers();
+    java.util.logging.Logger julLogger = java.util.logging.Logger.getLogger(logger.getName());
+    Handler[] handlers = julLogger.getHandlers();
     if (handlers != null) {
       for (Handler h : handlers) {
         h.flush();
@@ -728,7 +728,7 @@
       {
         if (!(throwable instanceof UserDataException))
         {
-          LOG.log(Level.WARNING, "Unhandled exception.", throwable);
+          logger.warn(LocalizableMessage.raw("Unhandled exception.", throwable));
         }
         else
         {
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java
index 545edc1..964142f 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java
@@ -30,8 +30,9 @@
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.HashSet;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 
 import javax.swing.JButton;
 import javax.swing.JFrame;
@@ -44,7 +45,6 @@
 import org.opends.quicksetup.event.ButtonEvent;
 import org.opends.quicksetup.event.MinimumSizeComponentListener;
 import org.opends.quicksetup.ProgressDescriptor;
-import org.forgerock.i18n.LocalizableMessage;
 /**
  * This class represents the dialog used by quicksetup applications.
  *
@@ -58,8 +58,7 @@
  */
 public class QuickSetupDialog
 {
-  static private final Logger LOG =
-          Logger.getLogger(QuickSetupDialog.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private JFrame frame;
 
@@ -424,8 +423,8 @@
     if (button != null) {
       button.requestFocusInWindow();
     } else {
-      LOG.log(Level.INFO, "Focus requested for unknown button '" +
-              buttonName + "'");
+      logger.debug(LocalizableMessage.raw("Focus requested for unknown button '" +
+              buttonName + "'"));
     }
   }
 
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
index da53c60..0c2631d 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
@@ -38,8 +38,8 @@
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
 import java.util.HashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.QuickSetupMessages.*;
 
@@ -58,7 +58,7 @@
 
   private static String parentPackagePath;
 
-  private static final Logger LOG = Logger.getLogger(UIFactory.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Specifies the horizontal insets between buttons.
@@ -760,7 +760,7 @@
       catch (Throwable t)
       {
         // This might occur when we do not get the display
-        LOG.log(Level.WARNING, "Error updating UIManager: "+t, t);
+        logger.warn(LocalizableMessage.raw("Error updating UIManager: "+t, t));
       }
       initializeLookAndFeel();
       initialized = true;
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/FileManager.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/FileManager.java
index ef72c06..c1d99fc 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/FileManager.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/FileManager.java
@@ -34,8 +34,8 @@
 
 
 import java.io.*;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 
 /**
  * Utility class for use by applications containing methods for managing
@@ -68,8 +68,7 @@
 
   }
 
-  static private final Logger LOG =
-          Logger.getLogger(FileManager.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private Application application = null;
 
@@ -387,7 +386,7 @@
         application.notifyListeners(application.getFormattedWarning(
                 INFO_FILE_DOES_NOT_EXIST.get(String.valueOf(file))));
       }
-      LOG.log(Level.INFO, "file '" + file.toString() + "' does not exist");
+      logger.debug(LocalizableMessage.raw("file '" + file.toString() + "' does not exist"));
     }
   }
 
@@ -490,9 +489,9 @@
                               objectFile.getAbsolutePath(),
                               destination.getAbsolutePath())));
             }
-            LOG.log(Level.INFO, "copying file '" +
+            logger.debug(LocalizableMessage.raw("copying file '" +
                     objectFile.getAbsolutePath() + "' to '" +
-                    destination.getAbsolutePath() + "'");
+                    destination.getAbsolutePath() + "'"));
             FileInputStream fis = null;
             FileOutputStream fos = null;
             try {
@@ -552,9 +551,9 @@
                     errMsg, null);
           }
         } else {
-          LOG.log(Level.INFO, "Ignoring file '" +
+          logger.debug(LocalizableMessage.raw("Ignoring file '" +
                   objectFile.getAbsolutePath() + "' since '" +
-                  destination.getAbsolutePath() + "' already exists");
+                  destination.getAbsolutePath() + "' already exists"));
           if ((application != null) && application.isVerbose()) {
             application.notifyListeners(
                     INFO_INFO_IGNORING_FILE.get(
@@ -611,9 +610,9 @@
                           file.getAbsolutePath())));
         }
       }
-      LOG.log(Level.INFO, "deleting " +
+      logger.debug(LocalizableMessage.raw("deleting " +
               (isFile ? " file " : " directory ") +
-              file.getAbsolutePath());
+              file.getAbsolutePath()));
 
       boolean delete = false;
       /*
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/HtmlProgressMessageFormatter.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/HtmlProgressMessageFormatter.java
index 85eec6f..dff8bb0 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/HtmlProgressMessageFormatter.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/HtmlProgressMessageFormatter.java
@@ -30,15 +30,15 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 import org.opends.quicksetup.ui.UIFactory;
 import org.opends.quicksetup.Constants;
 
 import static org.opends.messages.QuickSetupMessages.*;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
 /**
@@ -48,8 +48,7 @@
  */
 public class HtmlProgressMessageFormatter implements ProgressMessageFormatter
 {
-  static private final Logger LOG =
-          Logger.getLogger(HtmlProgressMessageFormatter.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private LocalizableMessage doneHtml;
   private LocalizableMessage errorHtml;
@@ -415,7 +414,7 @@
     int index = lastTextStr.indexOf(urlText);
     if (index == -1)
     {
-      LOG.log(Level.FINE, "lastText: " + lastText +
+      logger.trace("lastText: " + lastText +
               "does not contain: " + urlText);
     } else
     {
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/OutputReader.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/OutputReader.java
index c42558e..70a0a10 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/OutputReader.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/OutputReader.java
@@ -22,20 +22,22 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 
 package org.opends.quicksetup.util;
 
 import java.io.BufferedReader;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
    * This class is used to read an input stream and process ouput.
  */
 abstract public class OutputReader {
 
-  static private Logger LOG = Logger.getLogger(OutputReader.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Called whenever new input is read from the reader.
@@ -57,7 +59,7 @@
             processLine(line);
           }
         } catch (Throwable t) {
-          LOG.log(Level.INFO, "error reading output", t);
+          logger.debug(LocalizableMessage.raw("error reading output"), t);
         }
       }
     });
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ServerController.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ServerController.java
index b88af60..3af5873 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ServerController.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ServerController.java
@@ -44,8 +44,8 @@
 
 import java.util.ArrayList;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.io.IOException;
@@ -55,8 +55,7 @@
  */
 public class ServerController {
 
-  static private final Logger LOG =
-          Logger.getLogger(ServerController.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private Application application;
 
@@ -145,7 +144,7 @@
         mb.append(application.getLineBreak());
         application.notifyListeners(mb.toMessage());
       }
-      LOG.log(Level.INFO, "stopping server");
+      logger.debug(LocalizableMessage.raw("stopping server"));
 
       ArrayList<String> argList = new ArrayList<String>();
       argList.add(Utils.getScriptPath(
@@ -167,19 +166,19 @@
       env.remove(SetupUtils.OPENDJ_JAVA_ARGS);
       env.remove("CLASSPATH");
 
-      LOG.log(Level.INFO, "Before calling stop-ds.  Is server running? "+
-          installation.getStatus().isServerRunning());
+      logger.debug(LocalizableMessage.raw("Before calling stop-ds.  Is server running? "+
+          installation.getStatus().isServerRunning()));
 
       int stopTries = 3;
       while (stopTries > 0)
       {
         stopTries --;
-        LOG.log(Level.INFO, "Launching stop command, stopTries left: "+
-            stopTries);
+        logger.debug(LocalizableMessage.raw("Launching stop command, stopTries left: "+
+            stopTries));
 
         try
         {
-          LOG.log(Level.INFO, "Launching stop command, argList: "+argList);
+          logger.debug(LocalizableMessage.raw("Launching stop command, argList: "+argList));
           Process process = pb.start();
 
           BufferedReader err =
@@ -211,7 +210,7 @@
               boolean stopped = false;
 
               for (int i = 0; i < nTries && !stopped; i++) {
-                LOG.log(Level.FINE, "waiting for server to stop");
+                logger.trace("waiting for server to stop");
                 try {
                   Thread.sleep(5000);
                 }
@@ -220,8 +219,8 @@
                   // do nothing
                 }
                 stopped = !installation.getStatus().isServerRunning();
-                LOG.log(Level.INFO,
-                    "After calling stop-ds.  Is server running? "+!stopped);
+                logger.debug(LocalizableMessage.raw(
+                    "After calling stop-ds.  Is server running? "+!stopped));
 
                 if (!stopped) {
                   if (application != null) {
@@ -250,7 +249,7 @@
               mb.append(application.getLineBreak());
               application.notifyListeners(mb.toMessage());
             }
-            LOG.log(Level.INFO, "server already stopped");
+            logger.debug(LocalizableMessage.raw("server already stopped"));
             break;
           } else if (returnValue != 0) {
             if (stopTries <= 0)
@@ -270,7 +269,7 @@
               application.notifyListeners(application.getFormattedLog(
                   INFO_PROGRESS_SERVER_STOPPED.get()));
             }
-            LOG.log(Level.INFO, "server stopped");
+            logger.debug(LocalizableMessage.raw("server stopped"));
             break;
           }
 
@@ -341,7 +340,7 @@
         mb.append(application.getLineBreak());
         application.notifyListeners(mb.toMessage());
       }
-      LOG.log(Level.INFO, "starting server");
+      logger.debug(LocalizableMessage.raw("starting server"));
 
       ArrayList<String> argList = new ArrayList<String>();
       argList.add(Utils.getScriptPath(
@@ -376,7 +375,7 @@
 
         int returnValue = process.waitFor();
 
-        LOG.log(Level.INFO, "start-ds return value: "+returnValue);
+        logger.debug(LocalizableMessage.raw("start-ds return value: "+returnValue));
 
         if (returnValue != 0)
         {
@@ -386,15 +385,15 @@
         }
         if (outputReader.isFinished())
         {
-          LOG.log(Level.INFO, "Output reader finished.");
+          logger.debug(LocalizableMessage.raw("Output reader finished."));
         }
         if (errReader.isFinished())
         {
-          LOG.log(Level.INFO, "Error reader finished.");
+          logger.debug(LocalizableMessage.raw("Error reader finished."));
         }
         if (!outputReader.startedIdFound() && !errReader.startedIdFound())
         {
-          LOG.log(Level.WARNING, "Started ID could not be found");
+          logger.warn(LocalizableMessage.raw("Started ID could not be found"));
         }
 
         // Check if something wrong occurred reading the starting of the server
@@ -488,7 +487,7 @@
             }
             catch (NamingException ne)
             {
-              LOG.log(Level.WARNING, "Could not connect to server: "+ne, ne);
+              logger.warn(LocalizableMessage.raw("Could not connect to server: "+ne, ne));
             }
             finally
             {
@@ -605,7 +604,7 @@
                 application.notifyListeners(buf.toMessage());
                 isFirstLine = false;
               }
-              LOG.log(Level.INFO, "server: " + line);
+              logger.debug(LocalizableMessage.raw("server: " + line));
               line = reader.readLine();
             }
           } catch (Throwable t) {
@@ -613,7 +612,7 @@
               LocalizableMessage errorMsg = getThrowableMsg(errorTag, t);
               application.notifyListeners(errorMsg);
             }
-            LOG.log(Level.INFO, "error reading server messages",t);
+            logger.debug(LocalizableMessage.raw("error reading server messages",t));
           }
         }
       });
@@ -695,7 +694,7 @@
                 application.notifyListeners(buf.toMessage());
                 isFirstLine = false;
               }
-              LOG.log(Level.INFO, "server: " + line);
+              logger.debug(LocalizableMessage.raw("server: " + line));
               if (line.toLowerCase().contains("=" + startedId))
               {
                 isFinished = true;
@@ -705,7 +704,7 @@
             }
           } catch (Throwable t)
           {
-            LOG.log(Level.WARNING, "Error reading output: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error reading output: "+t, t));
             ex = new ApplicationException(
                 ReturnCode.START_ERROR,
                 getThrowableMsg(errorTag, t), t);
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/UIKeyStore.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/UIKeyStore.java
index 9d7b2c8..38cad7f 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/UIKeyStore.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/UIKeyStore.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 
 package org.opends.quicksetup.util;
@@ -38,8 +38,9 @@
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.util.Enumeration;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * Class used to get the KeyStore that the graphical utilities use.
@@ -49,8 +50,7 @@
 {
   private static KeyStore keyStore = null;
 
-  private static final Logger LOG = Logger.getLogger(
-      UIKeyStore.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * This should never be called.
@@ -80,22 +80,22 @@
       File f = new File(keyStorePath);
       if (!f.exists())
       {
-        LOG.log(Level.INFO, "Path "+keyStorePath+ " does not exist");
+        logger.debug(LocalizableMessage.raw("Path "+keyStorePath+ " does not exist"));
         keyStorePath = null;
       }
       else if (f.isDirectory())
       {
-        LOG.log(Level.SEVERE, "Path "+keyStorePath+ " is a directory");
+        logger.error(LocalizableMessage.raw("Path "+keyStorePath+ " is a directory"));
         keyStorePath = null;
       }
       else if (!f.canRead())
       {
-        LOG.log(Level.SEVERE, "Path "+keyStorePath+ " is not readable");
+        logger.error(LocalizableMessage.raw("Path "+keyStorePath+ " is not readable"));
         keyStorePath = null;
       }
       else if (!f.canWrite())
       {
-        LOG.log(Level.SEVERE, "Path "+keyStorePath+ " is not writable");
+        logger.error(LocalizableMessage.raw("Path "+keyStorePath+ " is not writable"));
         keyStorePath = null;
       }
 
@@ -109,7 +109,7 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.SEVERE, "Error reading key store on "+keyStorePath, t);
+          logger.error(LocalizableMessage.raw("Error reading key store on "+keyStorePath, t));
           keyStore.load(null, null);
         }
         fos.close();
@@ -137,7 +137,7 @@
       throws IOException,KeyStoreException, CertificateException,
       NoSuchAlgorithmException
   {
-    LOG.log(Level.INFO, "Accepting certificate chain.");
+    logger.debug(LocalizableMessage.raw("Accepting certificate chain."));
     KeyStore k = getInstance();
     for (X509Certificate aChain : chain) {
       if (!containsCertificate(aChain, k)) {
@@ -183,17 +183,17 @@
     File f = new File(adminTrustStorePath);
     if (!f.exists())
     {
-      LOG.log(Level.INFO, "Path "+adminTrustStorePath+ " does not exist");
+      logger.debug(LocalizableMessage.raw("Path "+adminTrustStorePath+ " does not exist"));
       adminTrustStorePath = null;
     }
     else if (f.isDirectory())
     {
-      LOG.log(Level.SEVERE, "Path "+adminTrustStorePath+ " is a directory");
+      logger.error(LocalizableMessage.raw("Path "+adminTrustStorePath+ " is a directory"));
       adminTrustStorePath = null;
     }
     else if (!f.canRead())
     {
-      LOG.log(Level.SEVERE, "Path "+adminTrustStorePath+ " is not readable");
+      logger.error(LocalizableMessage.raw("Path "+adminTrustStorePath+ " is not readable"));
       adminTrustStorePath = null;
     }
 
@@ -223,8 +223,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error reading admin key store on "+
-            adminTrustStorePath, t);
+        logger.error(LocalizableMessage.raw("Error reading admin key store on "+
+            adminTrustStorePath, t));
       }
       finally
       {
@@ -237,8 +237,8 @@
         }
         catch (Throwable t)
         {
-          LOG.log(Level.SEVERE, "Error closing admin key store on "+
-              adminTrustStorePath, t);
+          logger.error(LocalizableMessage.raw("Error closing admin key store on "+
+              adminTrustStorePath, t));
         }
       }
     }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
index a614675..8f4ac89 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -45,8 +45,9 @@
 import java.net.InetAddress;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.AuthenticationException;
 import javax.naming.CommunicationException;
@@ -67,7 +68,6 @@
 import org.opends.admin.ads.SuffixDescriptor;
 import org.opends.admin.ads.TopologyCacheException;
 import org.opends.admin.ads.util.ConnectionUtils;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.i18n.LocalizableMessageDescriptor;
 import org.opends.quicksetup.*;
@@ -86,8 +86,7 @@
  */
 public class Utils
 {
-  private static final Logger LOG =
-          Logger.getLogger(Utils.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final int BUFFER_SIZE = 1024;
 
@@ -149,8 +148,8 @@
       String installPath)
   {
     boolean supported = false;
-    LOG.log(Level.INFO, "Checking if options "+option+
-        " are supported with java home: "+javaHome);
+    logger.debug(LocalizableMessage.raw("Checking if options "+option+
+        " are supported with java home: "+javaHome));
     try
     {
       List<String> args = new ArrayList<String>();
@@ -181,13 +180,13 @@
         env.put("DO_NOT_PAUSE", "true");
       }
       final Process process = pb.start();
-      LOG.log(Level.INFO, "launching "+args+ " with env: "+env);
+      logger.debug(LocalizableMessage.raw("launching "+args+ " with env: "+env));
       InputStream is = process.getInputStream();
       BufferedReader reader = new BufferedReader(new InputStreamReader(is));
       String line;
       boolean errorDetected = false;
       while (null != (line = reader.readLine())) {
-        LOG.log(Level.INFO, "The output: "+line);
+        logger.debug(LocalizableMessage.raw("The output: "+line));
         if (line.contains("ERROR:  The detected Java version"))
         {
           if (Utils.isWindows())
@@ -220,13 +219,13 @@
       }
       process.waitFor();
       int returnCode = process.exitValue();
-      LOG.log(Level.INFO, "returnCode: "+returnCode);
+      logger.debug(LocalizableMessage.raw("returnCode: "+returnCode));
       supported = returnCode == 0 && !errorDetected;
-      LOG.log(Level.INFO, "supported: "+supported);
+      logger.debug(LocalizableMessage.raw("supported: "+supported));
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error testing option "+option+" on "+javaHome, t);
+      logger.warn(LocalizableMessage.raw("Error testing option "+option+" on "+javaHome, t));
     }
     return supported;
   }
@@ -789,7 +788,7 @@
     }
     else
     {
-      LOG.log(Level.WARNING, "Unexpected error: "+te, te);
+      logger.warn(LocalizableMessage.raw("Unexpected error: "+te, te));
       // This is unexpected.
       if (te.getCause() != null)
       {
@@ -1517,7 +1516,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error retrieving server current time: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error retrieving server current time: "+t, t));
     }
     return time;
   }
@@ -1597,7 +1596,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Failing checking host names: "+t, t);
+        logger.warn(LocalizableMessage.raw("Failing checking host names: "+t, t));
       }
     }
     else
@@ -2554,8 +2553,7 @@
  *
  */
 class EmptyPrintStream extends PrintStream {
-  private static final Logger LOG =
-    Logger.getLogger(EmptyPrintStream.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -2572,6 +2570,6 @@
   @Override
   public void println(String msg)
   {
-    LOG.log(Level.INFO, "EmptyStream msg: "+msg);
+    logger.debug(LocalizableMessage.raw("EmptyStream msg: "+msg));
   }
 }
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java
index 54d3323..d02f9b4 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java
@@ -40,8 +40,8 @@
 import java.util.ArrayList;
 import java.util.Map;
 import java.util.HashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * Class for extracting the contents of a zip file and managing
@@ -49,8 +49,7 @@
  */
 public class ZipExtractor {
 
-  static private final Logger LOG =
-          Logger.getLogger(ZipExtractor.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Path separator for zip file entry names on Windows and *nix. */
   static private final char ZIP_ENTRY_NAME_SEP = '/';
@@ -199,8 +198,8 @@
           if (sepPos != -1) {
             name = name.substring(sepPos + 1);
           } else {
-            LOG.log(Level.WARNING,
-                    "zip entry name does not contain a path separator");
+            logger.warn(LocalizableMessage.raw(
+                    "zip entry name does not contain a path separator"));
           }
         }
         if (name != null && name.length() > 0) {
@@ -287,7 +286,7 @@
         application.notifyListenersRatioChange(ratioBeforeCompleted);
       }
     }
-    LOG.log(Level.INFO, "extracting " + Utils.getPath(destination));
+    logger.debug(LocalizableMessage.raw("extracting " + Utils.getPath(destination)));
     if (Utils.insureParentsExist(destination))
     {
       if (entry.isDirectory())
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java
index aa708b0..b93137c 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java
@@ -31,8 +31,8 @@
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.jnlp.DownloadService;
 import javax.jnlp.DownloadServiceListener;
@@ -60,8 +60,7 @@
  * ProgressStep.DOWNLOADING step.
  */
 public class WebStartDownloader implements DownloadServiceListener {
-  static private final Logger LOG =
-    Logger.getLogger(WebStartDownloader.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private ApplicationException ex;
 
@@ -250,8 +249,8 @@
           (DownloadService) ServiceManager.lookup(Utils.JNLP_SERVICE_NAME);
     } catch (UnavailableServiceException e)
     {
-      LOG.log(Level.SEVERE, "Could not find service: "+
-          Utils.JNLP_SERVICE_NAME, e);
+      logger.error(LocalizableMessage.raw("Could not find service: "+
+          Utils.JNLP_SERVICE_NAME, e));
       String setupFile;
       if (Utils.isWindows())
       {
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/AdministrationConnector.java b/opendj3-server-dev/src/server/org/opends/server/admin/AdministrationConnector.java
index a309ccf..4749f51 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/AdministrationConnector.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/AdministrationConnector.java
@@ -27,7 +27,6 @@
 package org.opends.server.admin;
 
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.AdminMessages.*;
 import java.io.File;
 import java.io.FileWriter;
@@ -64,8 +63,7 @@
 import org.opends.server.admin.std.server.TrustManagerProviderCfg;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.FilePermission;
 
@@ -90,9 +88,7 @@
 
   // Friendly name of the administration connector
   private static final String FRIENDLY_NAME = "Administration Connector";
-
-  // The tracer object for the debug logger.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private LDAPConnectionHandler adminConnectionHandler;
 
@@ -751,10 +747,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_ADMIN_CERTIFICATE_GENERATION.get(e.getMessage());
       logError(message);
       throw new InitializationException(message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java b/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java
index 8012b77..1f22221 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.messages.AdminMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.forgerock.util.Reject.*;
 
 import java.util.Collection;
@@ -61,10 +60,9 @@
 import org.opends.server.admin.std.meta.RootCfgDefn;
 import org.opends.server.config.ConfigException;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.StaticUtils;
 
@@ -311,9 +309,7 @@
         }
       } catch (ConfigException e) {
         // The condition could not be evaluated.
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_REFINT_UNABLE_TO_EVALUATE_TARGET_CONDITION.get(mo
             .getManagedObjectDefinition().getUserFriendlyName(), String
@@ -810,13 +806,7 @@
       return instances;
     }
   }
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/ClassLoaderProvider.java b/opendj3-server-dev/src/server/org/opends/server/admin/ClassLoaderProvider.java
index 0f65d44..b2148a1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/ClassLoaderProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/ClassLoaderProvider.java
@@ -31,7 +31,6 @@
 import static org.opends.messages.AdminMessages.*;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.ServerConstants.EOL;
 
@@ -60,8 +59,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.std.meta.RootCfgDefn;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.InitializationException;
 import org.forgerock.util.Reject;
 
@@ -83,11 +81,7 @@
  * class loader as it can change at run-time.
  */
 public final class ClassLoaderProvider {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Private URLClassLoader implementation. This is only required so
@@ -414,9 +408,7 @@
       try {
         loader.addJarFile(extension);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_ADMIN_CANNOT_OPEN_JAR_FILE.
             get(extension.getName(), extension.getParent(),
@@ -600,14 +592,10 @@
       // Add and initialize the extensions.
       addExtension(extensionsPath.listFiles(filter));
     } catch (InitializationException e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw e;
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ADMIN_EXTENSIONS_CANNOT_LIST_FILES.get(
           String.valueOf(extensionsPath), stackTraceToSingleLineString(e));
@@ -638,9 +626,7 @@
     try {
       loadDefinitionClasses(is);
     } catch (InitializationException e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CLASS_LOADER_CANNOT_LOAD_CORE.get(CORE_MANIFEST,
           stackTraceToSingleLineString(e));
@@ -670,9 +656,7 @@
       try {
         is = jarFile.getInputStream(entry);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_ADMIN_CANNOT_READ_EXTENSION_MANIFEST.get(
             EXTENSION_MANIFEST, jarFile.getName(),
@@ -683,9 +667,7 @@
       try {
         loadDefinitionClasses(is);
       } catch (InitializationException e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CLASS_LOADER_CANNOT_LOAD_EXTENSION.get(jarFile
             .getName(), EXTENSION_MANIFEST, stackTraceToSingleLineString(e));
@@ -749,7 +731,7 @@
         continue;
       }
 
-      TRACER.debugMessage(DebugLogLevel.INFO, "Loading class " + className);
+      logger.trace("Loading class " + className);
 
       // Load the class and get an instance of it if it is a definition.
       Class<?> theClass;
@@ -815,9 +797,7 @@
       // Load the extension jar file.
       jarFile = new JarFile(jar);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ADMIN_CANNOT_OPEN_JAR_FILE.get(
           jar.getName(), jar.getParent(), stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
index 4954532..82a1f23 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
@@ -28,8 +28,6 @@
 package org.opends.server.admin.client.cli;
 
 import static org.opends.server.admin.client.cli.DsFrameworkCliReturnCode.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import org.forgerock.i18n.LocalizableMessage;
@@ -50,8 +48,8 @@
 import java.security.cert.CertificateException;
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.net.ssl.KeyManager;
 
@@ -67,8 +65,6 @@
 import org.opends.server.admin.std.server.TrustManagerProviderCfg;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.PasswordReader;
 import org.opends.server.util.SelectableCertificateKeyManager;
 import org.opends.server.util.args.Argument;
@@ -186,22 +182,13 @@
   private ApplicationTrustManager trustManager;
 
   private boolean configurationInitialized = false;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * End Of Line.
    */
   public static String EOL = System.getProperty("line.separator");
 
-  /**
-   * The Logger.
-   */
-  static private final Logger LOG =
-    Logger.getLogger(SecureConnectionCliArgs.class.getName());
 
   // Defines if the CLI always use the SSL connection type.
   private boolean alwaysSSL = false;
@@ -321,10 +308,7 @@
           bindPasswordValue = new String(pwChars);
         } catch(Exception ex)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
           try
           {
             err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
@@ -356,10 +340,7 @@
         }
         catch (Exception ex)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
           try
           {
             err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
@@ -852,28 +833,28 @@
             // Nothing to do: if this occurs we will systematically refuse the
             // certificates.  Maybe we should avoid this and be strict, but we
             // are in a best effort mode.
-            LOG.log(Level.WARNING, "Error with the truststore", e);
+            logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
           }
           catch (NoSuchAlgorithmException e)
           {
             // Nothing to do: if this occurs we will systematically refuse the
             // certificates.  Maybe we should avoid this and be strict, but we
             // are in a best effort mode.
-            LOG.log(Level.WARNING, "Error with the truststore", e);
+            logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
           }
           catch (CertificateException e)
           {
             // Nothing to do: if this occurs we will systematically refuse the
             // certificates.  Maybe we should avoid this and be strict, but we
             // are in a best effort mode.
-            LOG.log(Level.WARNING, "Error with the truststore", e);
+            logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
           }
           catch (IOException e)
           {
             // Nothing to do: if this occurs we will systematically refuse the
             // certificates.  Maybe we should avoid this and be strict, but we
             // are in a best effort mode.
-            LOG.log(Level.WARNING, "Error with the truststore", e);
+            logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
           }
           finally
           {
@@ -930,7 +911,7 @@
         // the
         // certificates. Maybe we should avoid this and be strict, but
         // we are in a best effort mode.
-        LOG.log(Level.WARNING, "Error with the keystore", e);
+        logger.warn(LocalizableMessage.raw("Error with the keystore"), e);
       }
       catch (NoSuchAlgorithmException e)
       {
@@ -939,7 +920,7 @@
         // certificates. Maybe we should avoid this and be strict, but
         // we are
         // in a best effort mode.
-        LOG.log(Level.WARNING, "Error with the keystore", e);
+        logger.warn(LocalizableMessage.raw("Error with the keystore"), e);
       }
       catch (CertificateException e)
       {
@@ -948,7 +929,7 @@
         // certificates. Maybe we should avoid this and be strict, but
         // we are
         // in a best effort mode.
-        LOG.log(Level.WARNING, "Error with the keystore", e);
+        logger.warn(LocalizableMessage.raw("Error with the keystore"), e);
       }
       catch (IOException e)
       {
@@ -957,7 +938,7 @@
         // certificates. Maybe we should avoid this and be strict, but
         // we are
         // in a best effort mode.
-        LOG.log(Level.WARNING, "Error with the keystore", e);
+        logger.warn(LocalizableMessage.raw("Error with the keystore"), e);
       }
       finally
       {
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
index 2928949..849fd2e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
@@ -29,7 +29,6 @@
 
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.admin.client.cli.DsFrameworkCliReturnCode.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -45,8 +44,7 @@
 import org.opends.admin.ads.util.ApplicationTrustManager;
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.PasswordReader;
 import org.opends.server.util.args.Argument;
 import org.opends.server.util.args.ArgumentException;
@@ -90,11 +88,7 @@
    * look for properties file.
    */
   protected BooleanArgument noPropertiesFileArg;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * End Of Line.
@@ -178,10 +172,7 @@
           bindPasswordValue = new String(pwChars);
         } catch(Exception ex)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
           try
           {
             err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
@@ -212,10 +203,7 @@
       }
       catch (Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         try
         {
           err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
index 20bd5c8..b4bda9a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
@@ -28,8 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.LinkedList;
 import java.util.List;
 
@@ -48,11 +46,10 @@
 import org.opends.server.api.ConfigAddListener;
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 
 
@@ -67,11 +64,7 @@
  */
 final class ConfigAddListenerAdaptor<S extends Configuration> extends
     AbstractConfigListenerAdaptor implements ConfigAddListener {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Cached managed object between accept/apply callbacks.
   private ServerManagedObject<? extends S> cachedManagedObject;
@@ -196,9 +189,7 @@
           try {
             handler.performPostAdd(cachedManagedObject);
           } catch (ConfigException e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
index 67e89df..1fb1921 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
@@ -28,8 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -59,10 +57,9 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.StaticUtils;
 
@@ -194,11 +191,7 @@
       return null;
     }
   }
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Cached managed object between accept/apply call-backs.
   private ServerManagedObject<? extends S> cachedManagedObject;
@@ -352,9 +345,7 @@
           try {
             handler.performPostModify(cachedManagedObject);
           } catch (ConfigException e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -477,9 +468,7 @@
       }
     } catch (ConfigException e) {
       // The dependent entry could not be retrieved.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = AdminMessages.ERR_ADMIN_CANNOT_GET_MANAGED_OBJECT.get(
           String.valueOf(dn), StaticUtils.getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
index cd99cc4..ccc6094 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
@@ -29,8 +29,6 @@
 
 
 import static org.opends.messages.AdminMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.LinkedList;
 import java.util.List;
 
@@ -49,11 +47,10 @@
 import org.opends.server.api.ConfigDeleteListener;
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 
 
@@ -68,11 +65,7 @@
  */
 final class ConfigDeleteListenerAdaptor<S extends Configuration> extends
     AbstractConfigListenerAdaptor implements ConfigDeleteListener {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Cached managed object between accept/apply callbacks.
   private ServerManagedObject<? extends S> cachedManagedObject;
@@ -197,9 +190,7 @@
           try {
             handler.performPostDelete(cachedManagedObject);
           } catch (ConfigException e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
index c0baff1..133959d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
@@ -28,8 +28,7 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.api.ConfigAddListener;
 import org.opends.server.api.ConfigDeleteListener;
@@ -38,7 +37,6 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
@@ -50,11 +48,7 @@
  * "delayed" add or delete listener.
  */
 final class DelayedConfigAddListener implements ConfigAddListener {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The name of the parent entry.
   private final DN parent;
@@ -137,9 +131,7 @@
           myEntry.deregisterAddListener(this);
         }
       } catch (ConfigException e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // Ignore this error as it implies that this listener has
         // already been deregistered.
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagedObject.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagedObject.java
index e755f9c..09e6a9e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagedObject.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagedObject.java
@@ -30,7 +30,6 @@
 
 
 import static org.opends.messages.AdminMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.Collections;
@@ -58,9 +57,8 @@
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 
 
 
@@ -73,11 +71,7 @@
  */
 public final class ServerManagedObject<S extends Configuration> implements
     PropertyProvider {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The configuration entry associated with this server managed
   // object (null if root).
@@ -956,9 +950,7 @@
         try {
           handler.performPostAdd(this);
         } catch (ConfigException e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -1243,9 +1235,7 @@
       }
     } catch (ConfigException e) {
       // Ignore the exception since this implies deregistration.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1275,9 +1265,7 @@
       }
     } catch (ConfigException e) {
       // Ignore the exception since this implies deregistration.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1313,9 +1301,7 @@
       }
     } catch (ConfigException e) {
       // Ignore the exception since this implies deregistration.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1345,9 +1331,7 @@
       }
     } catch (ConfigException e) {
       // Ignore the exception since this implies deregistration.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1361,9 +1345,7 @@
     try {
       configEntry = DirectoryServer.getConfigEntry(dn);
     } catch (ConfigException e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ADMIN_CANNOT_GET_LISTENER_BASE.get(
           String.valueOf(dn), stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
index 2018081..a04e30a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
@@ -31,7 +31,6 @@
 
 import static org.opends.messages.AdminMessages.*;
 import static org.opends.server.admin.PropertyException.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.ArrayList;
@@ -77,11 +76,10 @@
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -401,11 +399,7 @@
     new ServerManagedObject<RootCfg>(
       ManagedObjectPath.emptyPath(), RootCfgDefn.getInstance(), Collections
           .<PropertyDefinition<?>, SortedSet<?>> emptyMap(), null);
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -944,9 +938,7 @@
     try {
       configEntry = DirectoryServer.getConfigEntry(dn);
     } catch (ConfigException e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ADMIN_CANNOT_GET_MANAGED_OBJECT.get(
           String.valueOf(dn), stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicy.java b/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicy.java
index 31eef30..6c99f7b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicy.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicy.java
@@ -48,10 +48,7 @@
  */
 public abstract class AuthenticationPolicy
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final LocalizedLogger logger = LocalizedLogger.getLocalizedLogger(AuthenticationPolicy.class);
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Returns the authentication policy for the user provided user. The following
@@ -135,7 +132,7 @@
               String.valueOf(subentryDN));
           if (useDefaultOnError)
           {
-            //logger.error(message);
+            logger.error(message);
             return DirectoryServer.getDefaultPasswordPolicy();
           }
           else
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java b/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
index 133864f..2de4f88 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
@@ -31,8 +31,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.OP_ATTR_ACCOUNT_DISABLED;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 import static org.opends.server.util.StaticUtils.toLowerCase;
 
@@ -40,7 +38,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
@@ -54,10 +52,7 @@
  */
 public abstract class AuthenticationPolicyState
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -130,9 +125,9 @@
         if (valueString.equals("true") || valueString.equals("yes")
             || valueString.equals("on") || valueString.equals("1"))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Attribute %s resolves to true for user entry "
+            logger.trace("Attribute %s resolves to true for user entry "
                 + "%s", attributeType.getNameOrOID(),
                 entry.getName().toString());
           }
@@ -143,9 +138,9 @@
         if (valueString.equals("false") || valueString.equals("no")
             || valueString.equals("off") || valueString.equals("0"))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Attribute %s resolves to false for user "
+            logger.trace("Attribute %s resolves to false for user "
                 + "entry %s", attributeType.getNameOrOID(), entry.getName()
                 .toString());
           }
@@ -153,9 +148,9 @@
           return ConditionResult.FALSE;
         }
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Unable to resolve value %s for attribute %s "
+          logger.trace("Unable to resolve value %s for attribute %s "
               + "in user entry %s as a Boolean.", valueString,
               attributeType.getNameOrOID(), entry.getName().toString());
         }
@@ -168,9 +163,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning %s because attribute %s does not exist "
+      logger.trace("Returning %s because attribute %s does not exist "
           + "in user entry %s", ConditionResult.UNDEFINED.toString(),
           attributeType.getNameOrOID(), entry.getName().toString());
     }
@@ -218,11 +213,11 @@
         }
         catch (final Exception e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugWarning("Unable to decode value %s for attribute %s "
+            logger.trace("Unable to decode value %s for attribute %s "
                 + "in user entry %s: %s", v.getValue().toString(),
                 attributeType.getNameOrOID(), entry.getName().toString(),
                 stackTraceToSingleLineString(e));
@@ -240,9 +235,9 @@
 
     if (timeValue == -1)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning -1 because attribute %s does not "
+        logger.trace("Returning -1 because attribute %s does not "
             + "exist in user entry %s", attributeType.getNameOrOID(), entry
             .getName().toString());
       }
@@ -324,15 +319,12 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       isDisabled = ConditionResult.TRUE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("User %s is considered administratively "
+        logger.trace("User %s is considered administratively "
             + "disabled because an error occurred while "
             + "attempting to make the determination: %s.", userEntry.getName()
             .toString(), stackTraceToSingleLineString(e));
@@ -344,18 +336,18 @@
     if (isDisabled == ConditionResult.UNDEFINED)
     {
       isDisabled = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("User %s is not administratively disabled since "
+        logger.trace("User %s is not administratively disabled since "
             + "the attribute \"%s\" is not present in the entry.", userEntry
             .getName().toString(), OP_ATTR_ACCOUNT_DISABLED);
       }
       return false;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("User %s %s administratively disabled.", userEntry
+      logger.trace("User %s %s administratively disabled.", userEntry
           .getName().toString(), ((isDisabled == ConditionResult.TRUE) ? " is"
           : " is not"));
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/ClientConnection.java b/opendj3-server-dev/src/server/org/opends/server/api/ClientConnection.java
index 25d4159..37a43c5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/ClientConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/ClientConnection.java
@@ -47,7 +47,7 @@
 import org.opends.server.core.PluginConfigManager;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.AttributeValue;
@@ -55,7 +55,6 @@
 import org.opends.server.types.CancelRequest;
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Entry;
@@ -70,7 +69,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -84,10 +82,7 @@
      mayInvoke=true)
 public abstract class ClientConnection
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The set of authentication information for this client connection.
@@ -177,14 +172,14 @@
     networkGroup       = NetworkGroup.getDefaultNetworkGroup();
     networkGroup.addConnection(this);
     mustEvaluateNetworkGroup = true;
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       {
         LocalizableMessage message =
                 INFO_CHANGE_NETWORK_GROUP.get(
                   getConnectionID(),
                   "null",
                   networkGroup.getID());
-        TRACER.debugMessage(DebugLogLevel.INFO, message.toString());
+        logger.trace(message.toString());
       }
 
   }
@@ -1059,7 +1054,7 @@
     if (operation == null)
     {
       result = privileges.contains(privilege);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         DN authDN = authenticationInfo.getAuthenticationDN();
 
@@ -1067,7 +1062,7 @@
                 .get(getConnectionID(), -1L,
                      String.valueOf(authDN),
                      privilege.getName(), result);
-        TRACER.debugMessage(DebugLogLevel.INFO, message.toString());
+        logger.trace(message.toString());
       }
     }
     else
@@ -1078,7 +1073,7 @@
            !authenticationInfo.isAuthenticated())) {
         result = privileges.contains(privilege) ||
                  DirectoryServer.isDisabled(privilege);
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           DN authDN = authenticationInfo.getAuthenticationDN();
 
@@ -1088,7 +1083,7 @@
                     operation.getOperationID(),
                     String.valueOf(authDN),
                     privilege.getName(), result);
-          TRACER.debugMessage(DebugLogLevel.INFO, message.toString());
+          logger.trace(message.toString());
         }
       }
       else
@@ -1133,7 +1128,7 @@
   {
     HashSet<Privilege> privSet = this.privileges;
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       for (Privilege p : privileges)
       {
@@ -1177,7 +1172,7 @@
                   getConnectionID(), -1L,
                   String.valueOf(authDN),
                   buffer.toString(), result);
-        TRACER.debugMessage(DebugLogLevel.INFO,
+        logger.trace(
                 message.toString());
       }
       else
@@ -1190,7 +1185,7 @@
                   operation.getOperationID(),
                   String.valueOf(authDN),
                   buffer.toString(), result);
-        TRACER.debugMessage(DebugLogLevel.INFO, message.toString());
+        logger.trace(message.toString());
       }
 
       return result;
@@ -1709,14 +1704,14 @@
   public final void setNetworkGroup (NetworkGroup networkGroup)
   {
     if (this.networkGroup != networkGroup) {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         LocalizableMessage message =
                 INFO_CHANGE_NETWORK_GROUP.get(
                   getConnectionID(),
                   this.networkGroup.getID(),
                   networkGroup.getID());
-        TRACER.debugMessage(DebugLogLevel.INFO, message.toString());
+        logger.trace(message.toString());
       }
 
       // If there is a change, first remove this connection
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/DebugLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/api/DebugLogPublisher.java
index c37d309..da1a4e7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/DebugLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/DebugLogPublisher.java
@@ -31,11 +31,6 @@
 import java.util.Map;
 import java.util.TreeMap;
 
-import com.sleepycat.je.Database;
-import com.sleepycat.je.DatabaseEntry;
-import com.sleepycat.je.OperationStatus;
-import com.sleepycat.je.Transaction;
-
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.std.server.DebugLogPublisherCfg;
 import org.opends.server.loggers.debug.TraceSettings;
@@ -376,49 +371,4 @@
                                    String msg,
                                    Throwable ex, StackTraceElement[] stackTrace);
 
-
-
-  /**
-   * Log an JE database access in a method.
-   * @param  settings        The current trace settings in effect.
-   * @param  signature       The method signature.
-   * @param  sourceLocation  The location of the method in the source.
-   * @param  status          The status of the JE operation.
-   * @param  database        The database handle.
-   * @param  txn             The transaction handle (may be
-   *                         {@code null}).
-   * @param  key             The key to dump.
-   * @param  data            The data to dump.
-   * @param  stackTrace      The stack trace at the time the access
-   *                         occurred or null if its not available.
-   */
-  public abstract void traceJEAccess(TraceSettings settings,
-                                     String signature,
-                                     String sourceLocation,
-                                     OperationStatus status,
-                                     Database database,
-                                     Transaction txn,
-                                     DatabaseEntry key,
-                                     DatabaseEntry data,
-                                     StackTraceElement[] stackTrace);
-
-
-
-  /**
-   * Log a protocol element in a method.
-   * @param  settings        The current trace settings in effect.
-   * @param  signature       The method signature.
-   * @param  sourceLocation  The location of the method in the source.
-   * @param  decodedForm     The string representation of the protocol
-   *                         element.
-   * @param  stackTrace      The stack trace at the time the protocol
-   *                         element is logged or null if its not
-   *                         available.
-   */
-  public abstract void traceProtocolElement(TraceSettings settings,
-                                            String signature,
-                                            String sourceLocation,
-                                            String decodedForm,
-                                            StackTraceElement[] stackTrace);
-
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/DirectoryThread.java b/opendj3-server-dev/src/server/org/opends/server/api/DirectoryThread.java
index adff4a5..0a23cf5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/DirectoryThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/DirectoryThread.java
@@ -35,13 +35,11 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.backends.task.Task;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -160,13 +158,7 @@
     }
 
   }
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The directory thread group that all directory threads will be a
@@ -252,10 +244,7 @@
         // shutdown.
         return;
       }
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_UNCAUGHT_THREAD_EXCEPTION.get(
           t.getName(), stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/EntryCache.java b/opendj3-server-dev/src/server/org/opends/server/api/EntryCache.java
index 64df4d0..34ddbcb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/EntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/EntryCache.java
@@ -40,12 +40,10 @@
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.SearchFilter;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.admin.std.server.EntryCacheCfg;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.monitors.EntryCacheMonitorProvider;
 import org.opends.server.types.Attribute;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 
 
@@ -83,10 +81,7 @@
 public abstract class EntryCache
        <T extends EntryCacheCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of filters that define the entries that should be
   // excluded from the cache.
@@ -538,10 +533,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // This shouldn't happen, but if it does then we can't be
           // sure whether the entry should be excluded, so we will
@@ -568,10 +560,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // This shouldn't happen, but if it does, then
           // just ignore it.
diff --git a/opendj3-server-dev/src/server/org/opends/server/api/VirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/api/VirtualAttributeProvider.java
index 48ca4b8..7e3c8bd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/VirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/VirtualAttributeProvider.java
@@ -35,11 +35,10 @@
 import org.opends.server.admin.std.server.VirtualAttributeCfg;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class defines the set of methods and structures that must be
@@ -57,10 +56,7 @@
 public abstract class VirtualAttributeProvider
        <T extends VirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Initializes this virtual attribute based on the information in
@@ -298,10 +294,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // The substring couldn't be normalized.  We have to return
         // "undefined".
@@ -328,10 +321,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // The substring couldn't be normalized.  We have to return
           // "undefined".
@@ -355,10 +345,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // The substring couldn't be normalized.  We have to return
         // "undefined".
@@ -383,10 +370,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // The value couldn't be normalized.  If we can't find a
         // definite match, then we should return "undefined".
@@ -434,10 +418,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the provided value.  We should return
       // "undefined".
@@ -459,10 +440,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize one of the attribute values.  If we
         // can't find a definite match, then we should return
@@ -511,10 +489,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the provided value.  We should return
       // "undefined".
@@ -536,10 +511,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize one of the attribute values.  If we
         // can't find a definite match, then we should return
@@ -588,10 +560,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the provided value.  We should return
       // "undefined".
@@ -611,10 +580,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize one of the attribute values.  If we
         // can't find a definite match, then we should return
diff --git a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciHandler.java b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
index 89ae08e..a952451 100644
--- a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
@@ -32,7 +32,6 @@
 import static org.opends.server.authorization.dseecompat.EnumEvalReason.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -49,7 +48,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.controls.GetEffectiveRightsRequestControl;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
@@ -108,11 +107,7 @@
    * the search reference access check.
    */
   private static AttributeType refAttrType;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   static
   {
@@ -1198,10 +1193,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // FIXME -- Is there anything that we need to do here?
         continue;
@@ -1273,10 +1265,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = INFO_ACI_HANDLER_FAIL_PROCESS_GLOBAL_ACI.get(
           String.valueOf(configuration.dn()));
       throw new InitializationException(message, e);
diff --git a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
index f3e4c20..c0a2d655a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -44,8 +44,7 @@
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.AccessControlMessages.*;
 import org.opends.server.core.DirectoryServer;
@@ -63,10 +62,7 @@
 public class AciListenerManager implements
     BackendInitializationListener, AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -453,10 +449,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         continue;
       }
       InternalSearchOperation internalSearch =
@@ -474,10 +467,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         continue;
       }
       if (!internalSearch.getSearchEntries().isEmpty())
diff --git a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/DNS.java b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/DNS.java
index 765f785..cf4596e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/DNS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/DNS.java
@@ -29,7 +29,6 @@
 import static org.opends.messages.AccessControlMessages.*;
 import static org.opends.server.authorization.dseecompat.Aci.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.net.InetAddress;
@@ -39,18 +38,13 @@
 import java.util.regex.Pattern;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This class implements the dns bind rule keyword.
  */
 public class DNS implements KeywordBindRule {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
     /** List of patterns to match against. */
     private List<String> patterns = null;
@@ -150,10 +144,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
 
                 LocalizableMessage message = WARN_ACI_ERROR_CHECKING_CANONICAL_HOSTNAME.
                     get(hn, expr, getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternDN.java b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
index 56bb8d5..3f77e76 100644
--- a/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
+++ b/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
@@ -37,8 +37,7 @@
 import static org.opends.server.util.StaticUtils.hexStringToByteArray;
 import org.forgerock.util.Reject;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -67,10 +66,7 @@
  */
 public class PatternDN
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * If the pattern did not include any Multiple-Whole-RDN wildcards, then
@@ -1203,10 +1199,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get(
             dnString, String.valueOf(e));
@@ -1447,10 +1440,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get(
           dnString, String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java
index e782074..1ff1352 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java
@@ -43,7 +43,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.schema.BooleanSyntax;
@@ -52,7 +52,6 @@
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -69,10 +68,7 @@
        extends Backend
        implements ConfigurationChangeListener<BackupBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -150,10 +146,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_BACKUP_CANNOT_DECODE_BACKUP_ROOT_DN.get(getExceptionMessage(e));
@@ -219,10 +212,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
           backupBaseDN.toString(), getExceptionMessage(e));
@@ -246,10 +236,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -536,10 +523,7 @@
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       LocalizableMessage message = ERR_BACKUP_INVALID_BACKUP_DIRECTORY.get(
           String.valueOf(entryDN), ce.getMessage());
@@ -547,10 +531,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY.get(getExceptionMessage(e));
@@ -638,17 +619,13 @@
       backupDirectory = BackupDirectory.readBackupDirectoryDescriptor(v
           .getValue().toString());
     } catch (ConfigException ce) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       LocalizableMessage message = ERR_BACKUP_INVALID_BACKUP_DIRECTORY.get(String
           .valueOf(entryDN), ce.getMessageObject());
       throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY
           .get(getExceptionMessage(e));
@@ -873,10 +850,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             continue;
           }
@@ -915,10 +889,7 @@
                 }
                 catch (Exception e)
                 {
-                  if (debugEnabled())
-                  {
-                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                  }
+                  logger.traceException(e);
 
                   continue;
                 }
@@ -972,10 +943,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               continue;
             }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java
index ed96f05..c6acca4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java
@@ -39,14 +39,13 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.controls.SubtreeDeleteControl;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.*;
 import org.forgerock.util.Reject;
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -61,10 +60,7 @@
        extends Backend
        implements ConfigurationChangeListener<LDIFBackendCfg>, AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -141,10 +137,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             dn.toString(), getExceptionMessage(e));
@@ -172,9 +165,9 @@
     if (! ldifFile.exists())
     {
       // This is fine.  We will just start with an empty backend.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("LDIF backend starting empty because LDIF file " +
+        logger.trace("LDIF backend starting empty because LDIF file " +
                          ldifFilePath + " does not exist");
       }
 
@@ -224,10 +217,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_LDIF_BACKEND_ERROR_CREATING_FILE.get(
                        tempFile.getAbsolutePath(),
@@ -248,10 +238,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         StaticUtils.close(writer);
 
@@ -280,10 +267,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -295,10 +279,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -307,10 +288,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_LDIF_BACKEND_ERROR_RENAMING_FILE.get(
                        tempFile.getAbsolutePath(),
@@ -345,10 +323,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -899,9 +874,9 @@
     if (oldEntry == null)
     {
       // This should never happen.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Subtree rename encountered entry DN " +
+        logger.trace("Subtree rename encountered entry DN " +
                             entryDN + " for nonexistent entry.");
       }
       return;
@@ -1045,10 +1020,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage m = ERR_LDIF_BACKEND_CANNOT_CREATE_LDIF_WRITER.get(
                          stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/MemoryBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/MemoryBackend.java
index 6cbb167..96f99ae 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/MemoryBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/MemoryBackend.java
@@ -46,13 +46,12 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.BackupConfig;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.ConditionResult;
 import org.opends.server.types.Control;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
@@ -71,7 +70,6 @@
 import org.forgerock.util.Reject;
 
 import static org.opends.messages.BackendMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -107,10 +105,7 @@
 public class MemoryBackend
        extends Backend
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -215,10 +210,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             dn.toString(), getExceptionMessage(e));
@@ -256,10 +248,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -500,10 +489,7 @@
           {
             // This shouldn't happen, but we want the delete to continue anyway
             // so just ignore it if it does for some reason.
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -764,10 +750,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_MEMORYBACKEND_CANNOT_CREATE_LDIF_WRITER.get(String.valueOf(e));
@@ -801,10 +784,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java
index beabaa9..911b3c1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java
@@ -31,8 +31,6 @@
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.getExceptionMessage;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -48,7 +46,7 @@
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.DynamicConstants;
 import org.opends.server.util.LDIFWriter;
@@ -66,10 +64,7 @@
 public class MonitorBackend extends Backend implements
     ConfigurationChangeListener<MonitorBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of user-defined attributes that will be included in the base
   // monitor entry.
@@ -165,10 +160,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
           String.valueOf(configEntryDN), stackTraceToSingleLineString(e)));
@@ -257,10 +249,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final LocalizableMessage message = ERR_MONITOR_CANNOT_DECODE_MONITOR_ROOT_DN
           .get(getExceptionMessage(e));
@@ -331,10 +320,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final LocalizableMessage message = ERR_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER
           .get(stackTraceToSingleLineString(e));
@@ -349,10 +335,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       try
       {
@@ -360,10 +343,7 @@
       }
       catch (final Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
       }
 
       final LocalizableMessage message = ERR_MONITOR_UNABLE_TO_EXPORT_BASE
@@ -383,10 +363,7 @@
       }
       catch (final Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         try
         {
@@ -394,10 +371,7 @@
         }
         catch (final Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
         }
 
         final LocalizableMessage message = ERR_MONITOR_UNABLE_TO_EXPORT_PROVIDER_ENTRY
@@ -415,10 +389,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -437,10 +408,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -585,10 +553,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
           baseMonitorDN.toString(), getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java
index 5ea02e4..23ce2bd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java
@@ -44,12 +44,11 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.BackupConfig;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.ConditionResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
@@ -67,7 +66,6 @@
 import org.forgerock.util.Reject;
 
 import static org.opends.messages.BackendMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -103,10 +101,7 @@
  */
 public class NullBackend extends Backend
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -200,10 +195,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             dn.toString(), getExceptionMessage(e));
@@ -227,10 +219,7 @@
     try {
       DirectoryServer.registerObjectClass(nulOC, false);
     } catch (DirectoryException de) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       throw new InitializationException(de.getMessageObject());
     }
     objectClasses.put(nulOC, nulOCName);
@@ -258,10 +247,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -443,9 +429,7 @@
     try {
       ldifWriter = new LDIFWriter(exportConfig);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = LocalizableMessage.raw(e.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -455,9 +439,7 @@
     try {
       ldifWriter.close();
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java
index 11e3fb0..1b725b5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java
@@ -59,7 +59,7 @@
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.WorkflowTopologyNode;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.LDIFWriter;
 import org.forgerock.util.Reject;
@@ -68,7 +68,6 @@
 import static org.opends.messages.ConfigMessages.
      ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -91,10 +90,7 @@
        extends Backend
        implements ConfigurationChangeListener<RootDSEBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -250,10 +246,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_ROOTDSE_SUBORDINATE_BASE_EXCEPTION.get(
           stackTraceToSingleLineString(e));
@@ -1204,19 +1197,13 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           throw de;
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_ROOTDSE_UNEXPECTED_SEARCH_FAILURE.
               get(searchOperation.getConnectionID(),
@@ -1292,10 +1279,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER.get(
           stackTraceToSingleLineString(e));
@@ -1312,10 +1296,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_ROOTDSE_UNABLE_TO_EXPORT_DSE.get(stackTraceToSingleLineString(e));
@@ -1330,10 +1311,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1494,10 +1472,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_ROOTDSE_SUBORDINATE_BASE_EXCEPTION.get(
               stackTraceToSingleLineString(e));
@@ -1559,10 +1534,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_ROOTDSE_SUBORDINATE_BASE_EXCEPTION.get(
               stackTraceToSingleLineString(e));
@@ -1611,10 +1583,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
               String.valueOf(configEntryDN),
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
index 4307156..e07803f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
@@ -72,7 +72,7 @@
 import org.opends.server.core.SchemaConfigManager;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.AttributeTypeSyntax;
 import org.opends.server.schema.DITContentRuleSyntax;
 import org.opends.server.schema.DITStructureRuleSyntax;
@@ -93,7 +93,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -109,10 +108,7 @@
      extends Backend
      implements ConfigurationChangeListener<SchemaBackendCfg>, AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -398,9 +394,7 @@
       try {
         DirectoryServer.registerBaseDN(baseDN, this, true);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             baseDN.toString(), getExceptionMessage(e));
@@ -511,10 +505,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SCHEMA_ERROR_DETERMINING_SCHEMA_CHANGES.get(
           getExceptionMessage(e));
@@ -544,10 +535,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1168,10 +1156,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1194,10 +1179,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.
                     get(v.getValue().toString(), de.getMessageObject());
@@ -1220,10 +1202,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1246,10 +1225,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DCR.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1272,10 +1248,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1298,10 +1271,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1324,10 +1294,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message =
                     ERR_SCHEMA_MODIFY_CANNOT_DECODE_LDAP_SYNTAX.get(
@@ -1370,10 +1337,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1397,10 +1361,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.
                     get(v.getValue().toString(), de.getMessageObject());
@@ -1423,10 +1384,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1449,10 +1407,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DCR.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1476,10 +1431,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1503,10 +1455,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE.get(
                     v.getValue().toString(), de.getMessageObject());
@@ -1530,10 +1479,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 LocalizableMessage message =
                     ERR_SCHEMA_MODIFY_CANNOT_DECODE_LDAP_SYNTAX.get(
@@ -1644,19 +1590,13 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       throw de;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_SCHEMA_MODIFY_CANNOT_WRITE_NEW_SCHEMA.get(getExceptionMessage(e));
@@ -1901,10 +1841,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
               v.getValue().toString(), de.getMessageObject());
@@ -2231,10 +2168,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.get(
               v.getValue().toString(), de.getMessageObject());
@@ -2536,10 +2470,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
               v.getValue().toString(), de.getMessageObject());
@@ -3082,10 +3013,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
               v.getValue().toString(), de.getMessageObject());
@@ -3928,10 +3856,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       boolean allCleaned = true;
       for (File f : origFileList)
@@ -3948,10 +3873,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           allCleaned = false;
         }
@@ -3993,10 +3915,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       for (File f : installedFileList)
       {
@@ -4009,10 +3928,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
         }
       }
 
@@ -4034,10 +3950,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           allRestored = false;
         }
@@ -4079,10 +3992,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -4097,10 +4007,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -4143,10 +4050,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
@@ -4184,10 +4088,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -4314,10 +4215,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SCHEMA_UNABLE_TO_CREATE_LDIF_WRITER.get(
           stackTraceToSingleLineString(e));
@@ -4334,10 +4232,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_SCHEMA_UNABLE_TO_EXPORT_BASE.get(stackTraceToSingleLineString(e));
@@ -4352,10 +4247,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -4481,10 +4373,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       attrTypeSyntax = new AttributeTypeSyntax();
     }
@@ -4601,10 +4490,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       ocSyntax = new ObjectClassSyntax();
     }
@@ -4789,10 +4675,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_SCHEMA_BACKUP_CANNOT_GET_MAC.get(
               macKeyID, stackTraceToSingleLineString(e));
@@ -4813,10 +4696,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_SCHEMA_BACKUP_CANNOT_GET_DIGEST.get(
               digestAlgorithm, stackTraceToSingleLineString(e));
@@ -4865,10 +4745,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SCHEMA_BACKUP_CANNOT_CREATE_ARCHIVE_FILE.
           get(String.valueOf(filename), backupDirectory.getPath(),
@@ -4889,10 +4766,7 @@
       }
       catch (CryptoManagerException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_SCHEMA_BACKUP_CANNOT_GET_CIPHER.get(
                 stackTraceToSingleLineString(e));
@@ -4944,10 +4818,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       try
       {
@@ -4977,10 +4848,7 @@
     catch (Exception e)
     {
       // Can't locate or list Instance schema directory
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-    }
+      logger.traceException(e);
 
       message = ERR_SCHEMA_BACKUP_CANNOT_LIST_SCHEMA_FILES.get(
           schemaInstanceDirPath, stackTraceToSingleLineString(e));
@@ -5053,10 +4921,7 @@
           inputStream.close();
         } catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
            try
           {
@@ -5091,10 +4956,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_SCHEMA_BACKUP_CANNOT_CLOSE_ZIP_STREAM.get(
           filename, backupDirectory.getPath(), stackTraceToSingleLineString(e));
@@ -5134,10 +4996,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_SCHEMA_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
           backupDirectory.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -5177,10 +5036,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessageObject());
     }
@@ -5191,10 +5047,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
         backupDirectory.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -5738,10 +5591,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
 
       messages.add(ERR_SCHEMA_CANNOT_DETERMINE_BASE_DN.get(
@@ -5787,10 +5637,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
               String.valueOf(configEntryDN),
@@ -5829,10 +5676,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_SCHEMA_CANNOT_DEREGISTER_BASE_DN.get(
                   String.valueOf(dn),
@@ -5851,10 +5695,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_SCHEMA_CANNOT_REGISTER_BASE_DN.get(
                   String.valueOf(dn),
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java
index ae5c276..1880c37 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java
@@ -30,7 +30,6 @@
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -74,7 +73,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.util.CertificateManager;
@@ -91,10 +90,7 @@
      extends Backend
        implements ConfigurationChangeListener<TrustStoreBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -197,10 +193,7 @@
     }
     catch (KeyStoreException kse)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-      }
+      logger.traceException(kse);
 
       LocalizableMessage message = ERR_TRUSTSTORE_INVALID_TYPE.
           get(String.valueOf(trustStoreType), String.valueOf(configEntryDN),
@@ -383,10 +376,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
           String.valueOf(baseDN), String.valueOf(e));
@@ -410,10 +400,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -448,10 +435,7 @@
     }
     catch (KeyStoreException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return numEntries;
@@ -574,9 +558,9 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.VERBOSE, e);
+        logger.traceException(e);
       }
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_RETRIEVE_CERT.get(
@@ -749,10 +733,7 @@
       }
       catch (KeyStoreException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       if (aliases == null)
@@ -776,9 +757,9 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugCaught(DebugLogLevel.VERBOSE, e);
+              logger.traceException(e);
             }
 
             continue;
@@ -1018,10 +999,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_TRUSTSTORE_CANNOT_DETERMINE_FILE.get(
               String.valueOf(cfgEntryDN),
@@ -1040,10 +1018,7 @@
       }
       catch (KeyStoreException kse)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-        }
+        logger.traceException(kse);
 
         LocalizableMessage message = ERR_TRUSTSTORE_INVALID_TYPE.get(
                 String.valueOf(storeType),
@@ -1175,10 +1150,7 @@
     }
     catch (KeyStoreException kse)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-      }
+      logger.traceException(kse);
 
       messages.add(ERR_TRUSTSTORE_INVALID_TYPE.get(
               String.valueOf(newTrustStoreType),
@@ -1378,10 +1350,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_LOAD.get(
           trustStoreFile, getExceptionMessage(e));
@@ -1411,10 +1380,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_CREATE_FACTORY.get(
           trustStoreFile, getExceptionMessage(e));
@@ -1449,10 +1415,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_LOAD.get(
           trustStoreFile, getExceptionMessage(e));
@@ -1489,10 +1452,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_CREATE_FACTORY.get(
           trustStoreFile, getExceptionMessage(e));
@@ -1528,10 +1488,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_CANNOT_LOAD.get(
           trustStoreFile, getExceptionMessage(e));
@@ -1556,10 +1513,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TRUSTSTORE_ERROR_READING_KEY.get(
            alias, trustStoreFile, getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
index e59cbee..0b99cef 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
@@ -22,14 +22,14 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
 import java.util.*;
 
 import org.opends.server.types.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 
 /**
@@ -37,10 +37,7 @@
  */
 public class ApproximateIndexer extends Indexer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The comparator for index keys generated by this class.
@@ -174,10 +171,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -222,10 +216,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
index affebc6..f1ea682 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -36,10 +36,8 @@
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.ApproximateMatchingRule;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import org.opends.server.monitors.DatabaseEnvironmentMonitor;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.admin.std.server.LocalDBIndexCfg;
@@ -73,10 +71,7 @@
 public class AttributeIndex
     implements ConfigurationChangeListener<LocalDBIndexCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1018,10 +1013,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1171,10 +1163,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1258,10 +1247,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1445,10 +1431,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1489,10 +1472,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1619,10 +1599,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -2705,10 +2682,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         return IndexQuery.createNullIndexQuery().evaluate(null);
       }
     }
@@ -2776,10 +2750,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return IndexQuery.createNullIndexQuery().evaluate(null);
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 591ac9e..f230b3f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -51,7 +51,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
 import org.opends.server.extensions.DiskSpaceMonitor;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.RuntimeInformation;
 import org.forgerock.util.Reject;
@@ -66,7 +66,6 @@
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -79,10 +78,7 @@
     implements ConfigurationChangeListener<LocalDBBackendCfg>, AlertGenerator,
     DiskSpaceMonitorHandler
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -199,10 +195,7 @@
       }
       catch (InterruptedException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -242,19 +235,13 @@
 
         return cis.getChecksum().getValue();
       } catch (Exception e) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       } finally {
         if (fis != null) {
           try {
             fis.close();
           } catch (Exception e) {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -306,10 +293,7 @@
     }
     catch(DatabaseException databaseException)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, databaseException);
-      }
+      logger.traceException(databaseException);
       LocalizableMessage message =
           WARN_JEB_GET_ENTRY_COUNT_FAILED.get(databaseException.getMessage());
       throw new InitializationException(
@@ -324,10 +308,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             String.valueOf(dn), String.valueOf(e));
@@ -371,10 +352,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -394,10 +372,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_JEB_DATABASE_EXCEPTION.get(e.getMessage());
       logError(message);
     }
@@ -469,10 +444,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -547,10 +519,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -617,10 +586,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -658,10 +624,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -703,10 +666,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -745,10 +705,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -790,10 +747,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -843,10 +797,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -884,10 +835,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     finally
@@ -919,20 +867,14 @@
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
       LocalizableMessage message = ERR_JEB_EXPORT_IO_ERROR.get(ioe.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    message);
     }
     catch (DatabaseException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       throw createDirectoryException(de);
     }
     catch (IdentifiedException e)
@@ -941,10 +883,7 @@
       {
         throw (DirectoryException) e;
       }
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessageObject());
     }
@@ -1003,10 +942,7 @@
     }
     catch (ExecutionException execEx)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, execEx);
-      }
+      logger.traceException(execEx);
       if (execEx.getCause() instanceof DirectoryException)
       {
         throw ((DirectoryException) execEx.getCause());
@@ -1020,38 +956,26 @@
     }
     catch (InterruptedException intEx)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, intEx);
-      }
+      logger.traceException(intEx);
       LocalizableMessage message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
               message);
     }
     catch (JebException je)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, je);
-      }
+      logger.traceException(je);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    je.getMessageObject());
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    ie.getMessageObject());
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    ce.getMessageObject());
     }
@@ -1073,18 +997,15 @@
         }
 
         // Sync the environment to disk.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           LocalizableMessage message = NOTE_JEB_IMPORT_CLOSING_DATABASE.get();
-          TRACER.debugInfo(message.toString());
+          logger.trace(message.toString());
         }
       }
       catch (DatabaseException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
       }
     }
   }
@@ -1136,18 +1057,12 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw createDirectoryException(e);
     }
     catch (JebException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessageObject());
     }
@@ -1210,48 +1125,33 @@
     }
     catch (ExecutionException execEx)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, execEx);
-      }
+      logger.traceException(execEx);
       LocalizableMessage message = ERR_EXECUTION_ERROR.get(execEx.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
               message);
     }
     catch (InterruptedException intEx)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, intEx);
-      }
+      logger.traceException(intEx);
       LocalizableMessage message = ERR_INTERRUPTED_ERROR.get(intEx.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
               message);
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
               ce.getMessageObject());
     }
     catch (JebException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
               e.getMessageObject());
     }
     catch (InitializationException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new InitializationException(e.getMessageObject());
     }
     finally
@@ -1275,10 +1175,7 @@
       }
       catch (DatabaseException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1408,10 +1305,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               resultCode = DirectoryServer.getServerErrorResultCode();
 
@@ -1563,9 +1457,7 @@
       return rc;
     }
     catch (DatabaseException e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_JEB_OPEN_ENV_FAIL.get(e.getMessage());
       throw new InitializationException(message, e);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackupManager.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackupManager.java
index 34be477..a546705 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackupManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackupManager.java
@@ -54,8 +54,7 @@
 
 import org.opends.server.types.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -67,10 +66,7 @@
  */
 public class BackupManager
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The common prefix for archive files.
@@ -168,10 +164,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_MAC.get(
               macKeyID, stackTraceToSingleLineString(e));
@@ -191,10 +184,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_DIGEST.get(
               digestAlgorithm, stackTraceToSingleLineString(e));
@@ -288,10 +278,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_CREATE_ARCHIVE_FILE.
           get(String.valueOf(archiveFilename), backupDir.getPath(),
@@ -311,10 +298,7 @@
       }
       catch (CryptoManagerException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_CIPHER.get(
                 stackTraceToSingleLineString(e));
@@ -357,10 +341,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(
           backendDir.getAbsolutePath(), stackTraceToSingleLineString(e));
@@ -379,10 +360,7 @@
       }
       catch (IOException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         message = ERR_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE.get(
             ZIPENTRY_EMPTY_PLACEHOLDER, stackTraceToSingleLineString(e));
         throw new DirectoryException(
@@ -435,10 +413,7 @@
           }
           catch (IOException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             message = ERR_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE.get(
                 zipEntryName, stackTraceToSingleLineString(e));
             throw new DirectoryException(
@@ -468,20 +443,14 @@
           }
           catch (FileNotFoundException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // A log file has been deleted by the cleaner since we started.
             deletedFiles = true;
           }
           catch (IOException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             message = ERR_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE.get(
                 logFile.getName(), stackTraceToSingleLineString(e));
             throw new DirectoryException(
@@ -509,10 +478,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(
                 backendDir.getAbsolutePath(), stackTraceToSingleLineString(e));
@@ -544,10 +510,7 @@
     // to close the zipStream is clumsy. Needs cleanup and best practice.
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       try
       {
@@ -563,10 +526,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_JEB_BACKUP_CANNOT_CLOSE_ZIP_STREAM.
           get(archiveFilename, backupDir.getPath(),
@@ -608,10 +568,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
           backupDir.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -665,10 +622,7 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_RESTORE.get(
           backupInfo.getBackupID(), stackTraceToSingleLineString(e));
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -685,10 +639,7 @@
       }
       catch (IOException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_RESTORE.get(
             dependent.getBackupID(), stackTraceToSingleLineString(e));
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -703,10 +654,7 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_RESTORE.get(
           backupInfo.getBackupID(), stackTraceToSingleLineString(e));
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -761,10 +709,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessageObject());
     }
@@ -775,10 +720,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
           backupDir.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -856,10 +798,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_MAC.get(
             macKeyID, stackTraceToSingleLineString(e));
@@ -879,10 +818,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_DIGEST.get(
             digestAlgorithm, stackTraceToSingleLineString(e));
@@ -902,10 +838,7 @@
       }
       catch (CryptoManagerException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_CIPHER.get(
             stackTraceToSingleLineString(e));
@@ -1228,10 +1161,7 @@
       }
       catch (CryptoManagerException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_JEB_BACKUP_CANNOT_GET_CIPHER.get(
                 stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
index 4e76a9e..2560bdf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
@@ -34,6 +34,7 @@
 import java.util.logging.Logger;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.admin.BooleanPropertyDefinition;
 import org.opends.server.admin.DurationPropertyDefinition;
 import org.opends.server.admin.PropertyDefinition;
@@ -41,9 +42,6 @@
 import org.opends.server.admin.std.server.LocalDBBackendCfg;
 import org.opends.server.config.ConfigConstants;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
-
 import com.sleepycat.je.Durability;
 import com.sleepycat.je.EnvironmentConfig;
 import com.sleepycat.je.dbi.MemoryBudget;
@@ -54,17 +52,13 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class maps JE properties to configuration attributes.
  */
 public class ConfigurableEnvironment
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The name of the attribute which configures the database cache size as a
@@ -374,10 +368,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return "";
     }
   }
@@ -409,10 +400,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -596,9 +584,7 @@
           // Add this property to unique set.
           uniqueJEProperties.add(jePropertyName);
         } catch(IllegalArgumentException e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           LocalizableMessage message =
             ERR_CONFIG_JE_PROPERTY_INVALID.get(
             jeEntry, e.getMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
index 18c8a7f..d98983e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
@@ -29,8 +29,7 @@
 import com.sleepycat.je.*;
 
 import org.opends.server.types.DN;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.util.Comparator;
 
@@ -41,10 +40,7 @@
  */
 public class DN2ID extends DatabaseContainer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The key comparator used for the DN database.
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
index 7a38f62..6fc33c0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.StaticUtils;
 
@@ -40,7 +40,6 @@
 import java.util.*;
 
 import static org.opends.server.util.ServerConstants.ATTR_REFERRAL_URL;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.JebMessages.
      NOTE_JEB_REFERRAL_RESULT_MESSAGE;
 /**
@@ -53,10 +52,7 @@
  */
 public class DN2URI extends DatabaseContainer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The key comparator used for the DN database.
@@ -262,10 +258,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return ConditionResult.UNDEFINED;
     }
@@ -496,10 +489,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         // Return the non-LDAP URI as is.
       }
 
@@ -578,17 +568,11 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     catch (UnsupportedEncodingException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -720,10 +704,7 @@
             }
             catch (DirectoryException e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               // Return the non-LDAP URI as is.
             }
 
@@ -745,17 +726,11 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     catch (UnsupportedEncodingException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return true;
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java
index 956c48f..a4f58c4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java
@@ -22,15 +22,15 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions Copyright 2011 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
 import com.sleepycat.je.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.opends.server.util.ServerConstants;
+import org.opends.server.util.StaticUtils;
 
 /**
  * This class is a wrapper around the JE database object and provides basic
@@ -38,10 +38,7 @@
  */
 public abstract class DatabaseContainer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The database entryContainer.
@@ -104,9 +101,9 @@
       try
       {
         database = env.openDatabase(txn, name, dbConfig);
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("JE database %s opened. txnid=%d",
+          logger.trace("JE database %s opened. txnid=%d",
                               database.getDatabaseName(),
                               txn.getId());
         }
@@ -121,9 +118,9 @@
     else
     {
       database = env.openDatabase(null, name, dbConfig);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("JE database %s opened. txnid=none",
+        logger.trace("JE database %s opened. txnid=none",
                             database.getDatabaseName());
       }
     }
@@ -153,9 +150,9 @@
     database.close();
     database = null;
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Closed database %s", name);
+      logger.trace("Closed database %s", name);
     }
   }
 
@@ -173,10 +170,9 @@
       throws DatabaseException
   {
     OperationStatus status = database.put(txn, key, data);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database,
-                           txn, key, data);
+      logger.trace(messageToLog(status, database, txn, key, data));
     }
     return status;
   }
@@ -198,10 +194,9 @@
       throws DatabaseException
   {
     OperationStatus status = database.get(txn, key, data, lockMode);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
-                           data);
+      logger.trace(messageToLog(status, database, txn, key, data));
     }
     return status;
   }
@@ -220,10 +215,9 @@
       throws DatabaseException
   {
     OperationStatus status = database.putNoOverwrite(txn, key, data);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
-                           data);
+      logger.trace(messageToLog(status, database, txn, key, data));
     }
     return status;
   }
@@ -241,10 +235,9 @@
       throws DatabaseException
   {
     OperationStatus status = database.delete(txn, key);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn,
-                           key, null);
+      logger.trace(messageToLog(status, database, txn, key, null));
     }
     return status;
   }
@@ -289,10 +282,9 @@
   public long getRecordCount() throws DatabaseException
   {
     long count = database.count();
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, OperationStatus.SUCCESS,
-                    database, null, null, null);
+      logger.trace(messageToLog(OperationStatus.SUCCESS, database, null, null, null));
     }
     return count;
   }
@@ -339,4 +331,61 @@
   {
     this.name = name;
   }
+
+  /** Returns the message to log given the provided information. */
+  private String messageToLog(OperationStatus status, Database database,
+      Transaction txn, DatabaseEntry key, DatabaseEntry data)
+  {
+    StringBuilder builder = new StringBuilder();
+    builder.append(" (");
+    builder.append(status.toString());
+    builder.append(")");
+    builder.append(" db=");
+    try
+    {
+      builder.append(database.getDatabaseName());
+    }
+    catch (DatabaseException de)
+    {
+      builder.append(de.toString());
+    }
+    if (txn != null)
+    {
+      builder.append(" txnid=");
+      try
+      {
+        builder.append(txn.getId());
+      }
+      catch (DatabaseException de)
+      {
+        builder.append(de.toString());
+      }
+    }
+    else
+    {
+      builder.append(" txnid=none");
+    }
+
+    builder.append(ServerConstants.EOL);
+    if (key != null)
+    {
+      builder.append("key:");
+      builder.append(ServerConstants.EOL);
+      StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
+    }
+
+    // If the operation was successful we log the same common information
+    // plus the data
+    if (status == OperationStatus.SUCCESS && data != null)
+    {
+      builder.append("data(len=");
+      builder.append(data.getSize());
+      builder.append("):");
+      builder.append(ServerConstants.EOL);
+      StaticUtils.byteArrayToHexPlusAscii(builder, data.getData(), 4);
+    }
+    return builder.toString();
+  }
+
+
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
index bea8cfe..d5a44b5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
@@ -22,11 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.util.Comparator;
 
@@ -37,10 +37,7 @@
 public class DbPreloadComparator
     implements Comparator<DatabaseContainer>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
index 76d48f2..7ba5239 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
@@ -47,13 +47,11 @@
 import java.util.concurrent.atomic.AtomicLong;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.types.DebugLogLevel;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.types.Entry;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.messages.ExtensionMessages.*;
 
@@ -77,10 +75,7 @@
  */
 class EntryCachePreloader
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * BackendImpl object.
@@ -247,9 +242,7 @@
         jeb.getBackendID(), processedEntries.get());
       logError(message);
     } catch (InterruptedException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       // Interrupt the collector.
       collector.interrupt();
       // Interrupt all preload threads.
@@ -300,9 +293,7 @@
             DirectoryServer.getEntryCache().putEntry(entry, jeb, entryID);
             processedEntries.getAndIncrement();
           } catch (Exception ex) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-            }
+            logger.traceException(ex);
             LocalizableMessage message = ERR_CACHE_PRELOAD_ENTRY_FAILED.get(
               entry.getName().toNormalizedString(),
               (ex.getCause() != null ? ex.getCause().getMessage() :
@@ -362,9 +353,7 @@
                 try {
                   cursor.close();
                 } catch (DatabaseException de) {
-                  if (debugEnabled()) {
-                    TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                  }
+                  logger.traceException(de);
                 }
                 status = OperationStatus.SUCCESS;
                 cursor = null;
@@ -378,9 +367,7 @@
           } catch (InterruptedException e) {
             return;
           } catch (Exception e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       } finally {
@@ -389,9 +376,7 @@
           try {
             cursor.close();
           } catch (DatabaseException de) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
           }
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
index 78ebe2c..074813fa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -29,7 +29,6 @@
 
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import com.sleepycat.je.*;
@@ -53,7 +52,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
@@ -68,10 +67,7 @@
 public class EntryContainer
 implements ConfigurationChangeListener<LocalDBBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -599,10 +595,7 @@
     }
     catch (DatabaseException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       close();
       throw de;
     }
@@ -1264,10 +1257,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         String str = pageRequest.getCookie().toHexString();
         LocalizableMessage msg = ERR_JEB_INVALID_PAGED_RESULTS_COOKIE.get(str);
         throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
@@ -1396,10 +1386,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     if (pageRequest != null)
@@ -1457,10 +1444,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         String str = pageRequest.getCookie().toHexString();
         LocalizableMessage msg = ERR_JEB_INVALID_PAGED_RESULTS_COOKIE.get(str);
         throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
@@ -1508,10 +1492,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             continue;
           }
         }
@@ -2169,10 +2150,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return false;
@@ -2464,9 +2442,9 @@
           // and added back into the attribute indexes.
           newApexID = rootContainer.getNextEntryID();
 
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Move of target entry requires renumbering" +
+            logger.trace("Move of target entry requires renumbering" +
                 "all entries in the subtree. " +
                 "Old DN: %s " +
                 "New DN: %s " +
@@ -2551,9 +2529,9 @@
           {
             newID = rootContainer.getNextEntryID();
 
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
-              TRACER.debugInfo("Move of subordinate entry requires " +
+              logger.trace("Move of subordinate entry requires " +
                   "renumbering. " +
                   "Old DN: %s " +
                   "New DN: %s " +
@@ -3249,9 +3227,9 @@
     Transaction parentTxn = null;
     TransactionConfig txnConfig = null;
     Transaction txn = env.beginTransaction(parentTxn, txnConfig);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose("beginTransaction", "begin txnid=" + txn.getId());
+      logger.trace("beginTransaction", "begin txnid=" + txn.getId());
     }
     return txn;
   }
@@ -3269,9 +3247,9 @@
     if (txn != null)
     {
       txn.commit();
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("commit txnid=%d", txn.getId());
+        logger.trace("commit txnid=%d", txn.getId());
       }
     }
   }
@@ -3289,9 +3267,9 @@
     if (txn != null)
     {
       txn.abort();
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("abort txnid=%d", txn.getId());
+        logger.trace("abort txnid=%d", txn.getId());
       }
     }
   }
@@ -3751,10 +3729,7 @@
       }
       catch(Exception de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         // This is mainly used during the unit tests, so it's not essential.
         try
@@ -3766,10 +3741,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
         }
       }
     }
@@ -3812,9 +3784,9 @@
     {
       database.open();
     }
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugVerbose("Cleared the database %s", database.getName());
+      logger.trace("Cleared the database %s", database.getName());
     }
   }
 
@@ -3922,10 +3894,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     // The base entry must exist for a successful result.
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EnvManager.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EnvManager.java
index fbe0d22..1b3cac1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EnvManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EnvManager.java
@@ -27,9 +27,7 @@
 package org.opends.server.backends.jeb;
 import org.forgerock.i18n.LocalizableMessage;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.JebMessages.*;
 
 import java.io.File;
@@ -40,10 +38,7 @@
  */
 public class EnvManager
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -97,10 +92,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         LocalizableMessage message = ERR_JEB_CREATE_FAIL.get(e.getMessage());
         throw new JebException(message, e);
       }
@@ -140,10 +132,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_JEB_REMOVE_FAIL.get(e.getMessage());
       throw new JebException(message, e);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
index 013deb8..9415635 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
@@ -22,12 +22,11 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
@@ -43,10 +42,7 @@
  */
 public class EqualityIndexer extends Indexer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -181,10 +177,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -228,10 +221,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ExportJob.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ExportJob.java
index eab3da1..985487f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ExportJob.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ExportJob.java
@@ -43,8 +43,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.JebMessages.*;
 
 /**
@@ -52,10 +51,7 @@
  */
 public class ExportJob
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -217,11 +213,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("Malformed id2entry ID %s.%n",
+            logger.trace("Malformed id2entry ID %s.%n",
                             StaticUtils.bytesToHex(key.getData()));
           }
           skippedCount++;
@@ -242,11 +238,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("Malformed id2entry record for ID %d:%n%s%n",
+            logger.trace("Malformed id2entry record for ID %d:%n%s%n",
                        entryID.longValue(),
                        StaticUtils.bytesToHex(data.getData()));
           }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
index be11ffd..d99085e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
@@ -28,9 +28,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 
 import static org.opends.server.core.DirectoryServer.getMaxInternalBufferSize;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.JebMessages.*;
 
@@ -60,10 +58,7 @@
  */
 public class ID2Entry extends DatabaseContainer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Parameters for compression and encryption.
@@ -250,9 +245,9 @@
       catch(IOException ioe)
       {
         // TODO: This should never happen with byte buffer.
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
+          logger.traceException(ioe);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
index 1a8a2d1..5f40a6a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
@@ -22,12 +22,11 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2012-2013 ForgeRock AS
+ *      Portions Copyright 2012-2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.loggers.ErrorLogger.*;
 
 import com.sleepycat.je.*;
@@ -47,10 +46,7 @@
  */
 public class Index extends DatabaseContainer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The indexer object to construct index keys from LDAP attribute values.
@@ -452,11 +448,11 @@
         }
         entryLimitExceededCount++;
 
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder builder = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-          TRACER.debugInfo("Index entry exceeded in index %s. " +
+          logger.trace("Index entry exceeded in index %s. " +
               "Limit: %d. ID list size: %d.\nKey:%s",
               name, indexEntryLimit, entryIDList.size(),
               builder.toString());
@@ -505,11 +501,11 @@
 
       if(status != OperationStatus.SUCCESS)
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder builder = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-          TRACER.debugError(
+          logger.trace(
                   "The expected key does not exist in the index %s.\nKey:%s ",
                   name, builder.toString());
         }
@@ -561,11 +557,11 @@
       {
         if(deletedIDs != null && !rebuildRunning && trusted)
         {
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
             StringBuilder builder = new StringBuilder();
             StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-            TRACER.debugError(
+            logger.trace(
                   "The expected key does not exist in the index %s.\nKey:%s ",
                   name, builder.toString());
           }
@@ -632,11 +628,11 @@
             }
             entryLimitExceededCount++;
 
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
               StringBuilder builder = new StringBuilder();
               StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-              TRACER.debugInfo("Index entry exceeded in index %s. " +
+              logger.trace("Index entry exceeded in index %s. " +
                   "Limit: %d. ID list size: %d.\nKey:%s",
                   name, indexEntryLimit, idCountDelta + addedIDs.size(),
                   builder.toString());
@@ -684,11 +680,11 @@
     {
       if(deletedIDs != null && !rebuildRunning && trusted)
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder builder = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-          TRACER.debugError(
+          logger.trace(
                 "The expected key does not exist in the index %s.\nKey:%s",
                 name, builder.toString());
         }
@@ -790,11 +786,11 @@
         // will probably not be rebuilt.
         if(trusted && !rebuildRunning)
         {
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
             StringBuilder builder = new StringBuilder();
             StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-            TRACER.debugError(
+            logger.trace(
                   "The expected key does not exist in the index %s.\nKey:%s",
                   name, builder.toString());
           }
@@ -839,11 +835,11 @@
       // probably already removed.
       if (!entryIDList.remove(entryID) && !rebuildRunning && trusted)
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder builder = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-          TRACER.debugError("The expected entry ID does not exist in " +
+          logger.trace("The expected entry ID does not exist in " +
                 "the entry ID list for index %s.\nKey:%s",
                 name, builder.toString());
         }
@@ -874,11 +870,11 @@
       // will probably not be rebuilt.
       if(trusted && !rebuildRunning)
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder builder = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-          TRACER.debugError(
+          logger.trace(
                 "The expected key does not exist in the index %s.\nKey:%s",
                 name, builder.toString());
         }
@@ -1010,10 +1006,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
@@ -1165,10 +1158,7 @@
     }
     catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new EntryIDSet();
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
index 0983b28..ae04a7b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
@@ -29,9 +29,6 @@
 
 
 import static org.opends.messages.JebMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-
 import java.io.IOException;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -40,13 +37,12 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.CompressedSchema;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 
@@ -79,11 +75,7 @@
    * definitions.
    */
   private static final String DB_NAME_OC = "compressed_object_classes";
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The compressed attribute description schema database.
   private Database adDatabase;
@@ -292,10 +284,7 @@
     }
     catch (final ASN1Exception ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
 
       final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_DECODE_OC_TOKEN.get(ae
           .getMessage());
@@ -334,10 +323,7 @@
     }
     catch (final ASN1Exception ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
 
       final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_DECODE_AD_TOKEN.get(ae
           .getMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
index c414a21..ef024c9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
@@ -26,8 +26,7 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DN;
 import org.opends.server.types.RDN;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
@@ -42,10 +41,7 @@
  */
 public class JebFormat
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
index eb5f521..4e0f7b9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
@@ -22,12 +22,11 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.types.Attribute;
@@ -44,10 +43,7 @@
  */
 public class OrderingIndexer extends Indexer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -179,10 +175,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -228,10 +221,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java
index 4d7d90d..1cfa531 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java
@@ -34,7 +34,6 @@
 import java.util.*;
 import java.io.File;
 import org.opends.server.monitors.DatabaseEnvironmentMonitor;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.FilePermission;
 import org.opends.server.types.ConfigChangeResult;
@@ -45,8 +44,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.config.ConfigException;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.InitializationException;
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -60,10 +58,7 @@
 public class RootContainer
      implements ConfigurationChangeListener<LocalDBBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -217,9 +212,9 @@
     env = new Environment(backendDirectory,
                           envConfig);
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("JE (%s) environment opened with the following " +
+      logger.trace("JE (%s) environment opened with the following " +
           "config: %n%s", JEVersion.CURRENT_VERSION.toString(),
                           env.getConfig().toString());
 
@@ -236,9 +231,9 @@
       // after garbage collection and decrease as new objects are created.
       long heapFreeSize = Runtime.getRuntime().freeMemory();
 
-      TRACER.debugInfo("Current size of heap: %d bytes", heapSize);
-      TRACER.debugInfo("Max size of heap: %d bytes", heapMaxSize);
-      TRACER.debugInfo("Free memory in heap: %d bytes", heapFreeSize);
+      logger.trace("Current size of heap: %d bytes", heapSize);
+      logger.trace("Max size of heap: %d bytes", heapMaxSize);
+      logger.trace("Free memory in heap: %d bytes", heapFreeSize);
     }
 
     compressedSchema = new JECompressedSchema(env);
@@ -434,9 +429,9 @@
           preloadConfig.setMaxMillisecs(timeRemaining);
           PreloadStats preloadStats = db.preload(preloadConfig);
 
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
-            TRACER.debugInfo("file=" + db.getName() +
+            logger.trace("file=" + db.getName() +
                       " LNs=" + preloadStats.getNLNsLoaded());
           }
 
@@ -484,10 +479,7 @@
       }
       catch (DatabaseException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
           ERR_JEB_CACHE_PRELOAD.get(backend.getBackendID(),
@@ -805,8 +797,8 @@
                 adminActionRequired = true;
                 messages.add(INFO_CONFIG_JE_PROPERTY_REQUIRES_RESTART.get(
                         jePropertyName));
-                if(debugEnabled()) {
-                  TRACER.debugInfo("The change to the following property " +
+                if(logger.isTraceEnabled()) {
+                  logger.trace("The change to the following property " +
                     "will take effect when the component is restarted: " +
                     jePropertyName);
                 }
@@ -838,9 +830,9 @@
                 messages.add(NOTE_JEB_CONFIG_ATTR_REQUIRES_RESTART
                     .get(param.getName()));
               }
-              if(debugEnabled())
+              if(logger.isTraceEnabled())
               {
-                TRACER.debugInfo("The change to the following property will " +
+                logger.trace("The change to the following property will " +
                     "take effect when the backend is restarted: " +
                     param.getName());
               }
@@ -852,9 +844,9 @@
         // properties that are mutable at runtime.
         env.setMutableConfig(newEnvConfig);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(env.getConfig().toString());
+          logger.trace(env.getConfig().toString());
         }
       }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
index 16b6121..e8eee13 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
@@ -26,8 +26,7 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import java.util.*;
 import org.opends.server.api.SubstringMatchingRule;
@@ -37,10 +36,7 @@
  */
 public class SubstringIndexer extends Indexer
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -181,10 +177,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -267,10 +260,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
index 8a305ed..217fe12 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -28,7 +28,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 
 import com.sleepycat.je.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
@@ -47,7 +47,6 @@
     ERR_JEB_CONFIG_VLV_INDEX_BAD_FILTER;
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import org.opends.server.util.StaticUtils;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 import org.opends.server.api.OrderingMatchingRule;
@@ -73,10 +72,7 @@
 public class VLVIndex extends DatabaseContainer
     implements ConfigurationChangeListener<LocalDBVLVIndexCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The comparator for vlvIndex keys.
@@ -672,22 +668,22 @@
       if(status != OperationStatus.SUCCESS)
       {
         // There are no records in the database
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("No sort values set exist in VLV vlvIndex %s. " +
+          logger.trace("No sort values set exist in VLV vlvIndex %s. " +
               "Creating unbound set.", config.getName());
         }
         sortValuesSet = new SortValuesSet(this);
       }
       else
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder searchKeyHex = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(), 4);
           StringBuilder foundKeyHex = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(), 4);
-          TRACER.debugVerbose("Retrieved a sort values set in VLV vlvIndex " +
+          logger.trace("Retrieved a sort values set in VLV vlvIndex " +
               "%s\nSearch Key:%s\nFound Key:%s\n",
                               config.getName(),
                               searchKeyHex,
@@ -759,9 +755,9 @@
     if(status != OperationStatus.SUCCESS)
     {
       // There are no records in the database
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("No sort values set exist in VLV vlvIndex %s. " +
+        logger.trace("No sort values set exist in VLV vlvIndex %s. " +
             "Creating unbound set.", config.getName());
       }
       sortValuesSet = new SortValuesSet(this);
@@ -769,13 +765,13 @@
     }
     else
     {
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
         StringBuilder searchKeyHex = new StringBuilder();
         StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(), 4);
         StringBuilder foundKeyHex = new StringBuilder();
         StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(), 4);
-        TRACER.debugVerbose("Retrieved a sort values set in VLV vlvIndex " +
+        logger.trace("Retrieved a sort values set in VLV vlvIndex " +
             "%s\nSearch Key:%s\nFound Key:%s\n",
                             config.getName(),
                             searchKeyHex,
@@ -803,9 +799,9 @@
       data.setData(after);
       put(txn, key, data);
 
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugInfo("SortValuesSet with key %s has reached" +
+        logger.trace("SortValuesSet with key %s has reached" +
             " the entry size of %d. Spliting into two sets with " +
             " keys %s and %s.", splitSortValuesSet.getKeySortValues(),
                                 newSize, sortValuesSet.getKeySortValues(),
@@ -852,13 +848,13 @@
 
     if(status == OperationStatus.SUCCESS)
     {
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
         StringBuilder searchKeyHex = new StringBuilder();
         StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(), 4);
         StringBuilder foundKeyHex = new StringBuilder();
         StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(), 4);
-        TRACER.debugVerbose("Retrieved a sort values set in VLV vlvIndex " +
+        logger.trace("Retrieved a sort values set in VLV vlvIndex " +
             "%s\nSearch Key:%s\nFound Key:%s\n",
                             config.getName(),
                             searchKeyHex,
@@ -980,9 +976,9 @@
       if(status != OperationStatus.SUCCESS)
       {
         // There are no records in the database
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("No sort values set exist in VLV vlvIndex %s. " +
+          logger.trace("No sort values set exist in VLV vlvIndex %s. " +
               "Creating unbound set.", config.getName());
         }
         sortValuesSet = new SortValuesSet(this);
@@ -990,13 +986,13 @@
       }
       else
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
           StringBuilder searchKeyHex = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(), 4);
           StringBuilder foundKeyHex = new StringBuilder();
           StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(), 4);
-          TRACER.debugVerbose("Retrieved a sort values set in VLV vlvIndex " +
+          logger.trace("Retrieved a sort values set in VLV vlvIndex " +
               "%s\nSearch Key:%s\nFound Key:%s\n",
               config.getName(),
               searchKeyHex,
@@ -1084,9 +1080,9 @@
         data.setData(after);
         put(txn, key, data);
 
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugInfo("SortValuesSet with key %s has reached" +
+          logger.trace("SortValuesSet with key %s has reached" +
               " the entry size of %d. Spliting into two sets with " +
               " keys %s and %s.", splitSortValuesSet.getKeySortValues(),
               newSize, sortValuesSet.getKeySortValues(),
@@ -1232,7 +1228,7 @@
           status = cursor.getFirst(key, data,lockMode);
           while(status == OperationStatus.SUCCESS)
           {
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
               StringBuilder searchKeyHex = new StringBuilder();
               StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(),
@@ -1240,7 +1236,7 @@
               StringBuilder foundKeyHex = new StringBuilder();
               StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(),
                                                   4);
-              TRACER.debugVerbose("Retrieved a sort values set in VLV " +
+              logger.trace("Retrieved a sort values set in VLV " +
                   "vlvIndex %s\nSearch Key:%s\nFound Key:%s\n",
                                   config.getName(),
                                   searchKeyHex,
@@ -1307,7 +1303,7 @@
           status = cursor.getSearchKeyRange(key, data, lockMode);
           if(status == OperationStatus.SUCCESS)
           {
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
               StringBuilder searchKeyHex = new StringBuilder();
               StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(),
@@ -1315,7 +1311,7 @@
               StringBuilder foundKeyHex = new StringBuilder();
               StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(),
                                                   4);
-              TRACER.debugVerbose("Retrieved a sort values set in VLV " +
+              logger.trace("Retrieved a sort values set in VLV " +
                   "vlvIndex %s\nSearch Key:%s\nFound Key:%s\n",
                                   config.getName(),
                                   searchKeyHex,
@@ -1451,13 +1447,13 @@
         status = cursor.getFirst(key, data, lockMode);
         while(status == OperationStatus.SUCCESS)
         {
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
             StringBuilder searchKeyHex = new StringBuilder();
             StaticUtils.byteArrayToHexPlusAscii(searchKeyHex, key.getData(), 4);
             StringBuilder foundKeyHex = new StringBuilder();
             StaticUtils.byteArrayToHexPlusAscii(foundKeyHex, key.getData(), 4);
-            TRACER.debugVerbose("Retrieved a sort values set in VLV vlvIndex " +
+            logger.trace("Retrieved a sort values set in VLV vlvIndex " +
                 "%s\nSearch Key:%s\nFound Key:%s\n",
                                 config.getName(),
                                 searchKeyHex,
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
index f519347..53ff069 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -29,8 +29,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 import org.opends.server.api.OrderingMatchingRule;
@@ -51,10 +50,7 @@
  */
 public class VerifyJob
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -467,11 +463,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("Malformed id2entry ID %s.%n",
+            logger.trace("Malformed id2entry ID %s.%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -489,11 +485,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("Malformed id2entry record for ID %d:%n%s%n",
+            logger.trace("Malformed id2entry record for ID %d:%n%s%n",
                        entryID.longValue(),
                        StaticUtils.bytesToHex(data.getData()));
           }
@@ -505,9 +501,9 @@
       if (keyCount != storedEntryCount)
       {
         errorCount++;
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("The stored entry count in id2entry (%d) does " +
+          logger.trace("The stored entry count in id2entry (%d) does " +
               "not agree with the actual number of entry " +
               "records found (%d).%n", storedEntryCount, keyCount);
         }
@@ -594,11 +590,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File dn2id has malformed ID for DN <%s>:%n%s%n",
+            logger.trace("File dn2id has malformed ID for DN <%s>:%n%s%n",
                        new String(key.getData()),
                        StaticUtils.bytesToHex(data.getData()));
           }
@@ -613,19 +609,16 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           continue;
         }
 
         if (entry == null)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugError("File dn2id has DN <%s> referencing unknown " +
+            logger.trace("File dn2id has DN <%s> referencing unknown " +
                 "ID %d%n", new String(key.getData()), entryID.longValue());
           }
         }
@@ -636,9 +629,9 @@
                              key.getData()))
           {
             errorCount++;
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugError("File dn2id has DN <%s> referencing entry " +
+              logger.trace("File dn2id has DN <%s> referencing entry " +
                   "with wrong DN <%s>%n", new String(key.getData()),
                                           entry.getName().toNormalizedString());
             }
@@ -680,11 +673,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2children has malformed ID %s%n",
+            logger.trace("File id2children has malformed ID %s%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -700,11 +693,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2children has malformed ID list " +
+            logger.trace("File id2children has malformed ID list " +
                 "for ID %s:%n%s%n", entryID,
                                     StaticUtils.bytesToHex(data.getData()));
           }
@@ -722,10 +715,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             errorCount++;
             continue;
           }
@@ -733,9 +723,9 @@
           if (entry == null)
           {
             errorCount++;
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugError("File id2children has unknown ID %d%n",
+              logger.trace("File id2children has unknown ID %d%n",
                          entryID.longValue());
             }
             continue;
@@ -750,10 +740,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               errorCount++;
               continue;
             }
@@ -761,9 +748,9 @@
             if (childEntry == null)
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("File id2children has ID %d referencing " +
+                logger.trace("File id2children has ID %d referencing " +
                     "unknown ID %d%n", entryID.longValue(), id.longValue());
               }
               continue;
@@ -774,9 +761,9 @@
                  entry.getName().size() + 1)
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("File id2children has ID %d with DN <%s> " +
+                logger.trace("File id2children has ID %d with DN <%s> " +
                     "referencing ID %d with non-child DN <%s>%n",
                            entryID.longValue(), entry.getName().toString(),
                            id.longValue(), childEntry.getName().toString());
@@ -820,11 +807,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2subtree has malformed ID %s%n",
+            logger.trace("File id2subtree has malformed ID %s%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -839,11 +826,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2subtree has malformed ID list " +
+            logger.trace("File id2subtree has malformed ID list " +
                 "for ID %s:%n%s%n", entryID,
                                     StaticUtils.bytesToHex(data.getData()));
           }
@@ -861,10 +848,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             errorCount++;
             continue;
           }
@@ -872,9 +856,9 @@
           if (entry == null)
           {
             errorCount++;
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugError("File id2subtree has unknown ID %d%n",
+              logger.trace("File id2subtree has unknown ID %d%n",
                          entryID.longValue());
             }
             continue;
@@ -889,10 +873,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               errorCount++;
               continue;
             }
@@ -900,9 +881,9 @@
             if (subordEntry == null)
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("File id2subtree has ID %d referencing " +
+                logger.trace("File id2subtree has ID %d referencing " +
                     "unknown ID %d%n", entryID.longValue(), id.longValue());
               }
               continue;
@@ -911,9 +892,9 @@
             if (!subordEntry.getName().isDescendantOf(entry.getName()))
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("File id2subtree has ID %d with DN <%s> " +
+                logger.trace("File id2subtree has ID %d with DN <%s> " +
                     "referencing ID %d with non-subordinate " +
                     "DN <%s>%n",
                            entryID.longValue(), entry.getName().toString(),
@@ -1019,9 +1000,9 @@
           if(lastValues != null && lastValues.compareTo(values) >= 1)
           {
             // Make sure the values is larger then the previous one.
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
-              TRACER.debugError("Values %s and %s are incorrectly ordered",
+              logger.trace("Values %s and %s are incorrectly ordered",
                                 lastValues, values, keyDump(vlvIndex,
                                           sortValuesSet.getKeySortValues()));
             }
@@ -1036,9 +1017,9 @@
                                                    values.getValues());
             if(!Arrays.equals(key.getData(), encodedKey))
             {
-              if(debugEnabled())
+              if(logger.isTraceEnabled())
               {
-                TRACER.debugError("Incorrect key for SortValuesSet in VLV " +
+                logger.trace("Incorrect key for SortValuesSet in VLV " +
                     "index %s. Last values bytes %s, Key bytes %s",
                                   vlvIndex.getName(), encodedKey, key);
               }
@@ -1057,10 +1038,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               errorCount++;
               continue;
             }
@@ -1068,9 +1046,9 @@
             if (entry == null)
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("Reference to unknown ID %d%n%s",
+                logger.trace("Reference to unknown ID %d%n%s",
                                   id.longValue(),
                                   keyDump(vlvIndex,
                                           sortValuesSet.getKeySortValues()));
@@ -1083,9 +1061,9 @@
             if(entryValues.compareTo(values) != 0)
             {
               errorCount++;
-              if(debugEnabled())
+              if(logger.isTraceEnabled())
               {
-                TRACER.debugError("Reference to entry ID %d " +
+                logger.trace("Reference to entry ID %d " +
                     "which does not match the values%n%s",
                                   id.longValue(),
                                   keyDump(vlvIndex,
@@ -1140,11 +1118,11 @@
         catch (Exception e)
         {
           errorCount++;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("Malformed ID list: %s%n%s",
+            logger.trace("Malformed ID list: %s%n%s",
                        StaticUtils.bytesToHex(data.getData()),
                        keyDump(index, key.getData()));
           }
@@ -1162,9 +1140,9 @@
           {
             if (prevID != null && id.equals(prevID))
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("Duplicate reference to ID %d%n%s",
+                logger.trace("Duplicate reference to ID %d%n%s",
                            id.longValue(), keyDump(index, key.getData()));
               }
             }
@@ -1177,10 +1155,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               errorCount++;
               continue;
             }
@@ -1188,9 +1163,9 @@
             if (entry == null)
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("Reference to unknown ID %d%n%s",
+                logger.trace("Reference to unknown ID %d%n%s",
                            id.longValue(), keyDump(index, key.getData()));
               }
               continue;
@@ -1238,9 +1213,9 @@
             if (!foundMatchingKey.get())
             {
               errorCount++;
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugError("Reference to entry "
+                logger.trace("Reference to entry "
                     + "<%s> which does not match the value%n%s",
                     entry.getName(),
                     keyDump(index, value));
@@ -1295,18 +1270,18 @@
       EntryID id = dn2id.get(null, dn, LockMode.DEFAULT);
       if (id == null)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("File dn2id is missing key %s.%n",
+          logger.trace("File dn2id is missing key %s.%n",
                      dn.toNormalizedString());
         }
         errorCount++;
       }
       else if (!id.equals(entryID))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("File dn2id has ID %d instead of %d for key %s.%n",
+          logger.trace("File dn2id has ID %d instead of %d for key %s.%n",
                      id.longValue(),
                      entryID.longValue(),
                      dn.toNormalizedString());
@@ -1316,11 +1291,11 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
 
-        TRACER.debugError("File dn2id has error reading key %s: %s.%n",
+        logger.trace("File dn2id has error reading key %s: %s.%n",
                    dn.toNormalizedString(),
                    e.getMessage());
       }
@@ -1336,9 +1311,9 @@
         EntryID id = dn2id.get(null, parentDN, LockMode.DEFAULT);
         if (id == null)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugError("File dn2id is missing key %s.%n",
+            logger.trace("File dn2id is missing key %s.%n",
                        parentDN.toNormalizedString());
           }
           errorCount++;
@@ -1346,11 +1321,11 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("File dn2id has error reading key %s: %s.%n",
+          logger.trace("File dn2id has error reading key %s: %s.%n",
                      parentDN.toNormalizedString(),
                      e.getMessage());
         }
@@ -1378,9 +1353,9 @@
         parentID = dn2id.get(null, parentDN, LockMode.DEFAULT);
         if (parentID == null)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugError("File dn2id is missing key %s.%n",
+            logger.trace("File dn2id is missing key %s.%n",
                        parentDN.toNormalizedString());
           }
           errorCount++;
@@ -1388,11 +1363,11 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("File dn2id has error reading key %s: %s.",
+          logger.trace("File dn2id has error reading key %s: %s.",
                      parentDN.toNormalizedString(),
                      e.getMessage());
         }
@@ -1406,9 +1381,9 @@
           cr = id2c.containsID(null, parentID.getDatabaseEntry(), entryID);
           if (cr == ConditionResult.FALSE)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugError("File id2children is missing ID %d " +
+              logger.trace("File id2children is missing ID %d " +
                   "for key %d.%n",
                          entryID.longValue(), parentID.longValue());
             }
@@ -1421,11 +1396,11 @@
         }
         catch (DatabaseException e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2children has error reading key %d: %s.",
+            logger.trace("File id2children has error reading key %d: %s.",
                        parentID.longValue(), e.getMessage());
           }
           errorCount++;
@@ -1450,9 +1425,9 @@
         id = dn2id.get(null, dn, LockMode.DEFAULT);
         if (id == null)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugError("File dn2id is missing key %s.%n",
+            logger.trace("File dn2id is missing key %s.%n",
                        dn.toNormalizedString());
           }
           errorCount++;
@@ -1460,11 +1435,11 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("File dn2id has error reading key %s: %s.%n",
+          logger.trace("File dn2id has error reading key %s: %s.%n",
                      dn.toNormalizedString(),
                      e.getMessage());
         }
@@ -1478,9 +1453,9 @@
           cr = id2s.containsID(null, id.getDatabaseEntry(), entryID);
           if (cr == ConditionResult.FALSE)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugError("File id2subtree is missing ID %d " +
+              logger.trace("File id2subtree is missing ID %d " +
                   "for key %d.%n",
                          entryID.longValue(), id.longValue());
             }
@@ -1493,11 +1468,11 @@
         }
         catch (DatabaseException e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugError("File id2subtree has error reading key %d: %s.%n",
+            logger.trace("File id2subtree has error reading key %d: %s.%n",
                        id.longValue(), e.getMessage());
           }
           errorCount++;
@@ -1595,11 +1570,11 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("Error normalizing values of attribute %s in " +
+          logger.trace("Error normalizing values of attribute %s in " +
               "entry <%s>: %s.%n",
                      attrIndex.getAttributeType().toString(),
                      entry.getName().toString(),
@@ -1617,9 +1592,9 @@
           if(!vlvIndex.containsValues(null, entryID.longValue(),
                                   vlvIndex.getSortValues(entry)))
           {
-            if(debugEnabled())
+            if(logger.isTraceEnabled())
             {
-              TRACER.debugError("Missing entry %s in VLV index %s",
+              logger.trace("Missing entry %s in VLV index %s",
                                 entry.getName().toString(),
                                 vlvIndex.getName());
             }
@@ -1629,11 +1604,11 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("Error checking entry %s against filter or " +
+          logger.trace("Error checking entry %s against filter or " +
               "base DN for VLV index %s: %s",
                      entry.getName().toString(),
                      vlvIndex.getName(),
@@ -1643,11 +1618,11 @@
       }
       catch (DatabaseException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("Error reading VLV index %s for entry %s: %s",
+          logger.trace("Error reading VLV index %s for entry %s: %s",
                      vlvIndex.getName(),
                      entry.getName().toString(),
                      StaticUtils.getBacktrace(e));
@@ -1656,11 +1631,11 @@
       }
       catch (JebException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("Error reading VLV index %s for entry %s: %s",
+          logger.trace("Error reading VLV index %s for entry %s: %s",
                      vlvIndex.getName(),
                      entry.getName().toString(),
                      StaticUtils.getBacktrace(e));
@@ -1700,9 +1675,9 @@
         cr = presenceIndex.containsID(txn, presenceKey, entryID);
         if (cr == ConditionResult.FALSE)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugError("Missing ID %d%n%s",
+            logger.trace("Missing ID %d%n%s",
                        entryID.longValue(),
                        keyDump(presenceIndex, presenceKey.getData()));
           }
@@ -1715,11 +1690,11 @@
       }
       catch (DatabaseException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
 
-          TRACER.debugError("Error reading database: %s%n%s",
+          logger.trace("Error reading database: %s%n%s",
                      e.getMessage(),
                      keyDump(presenceIndex, presenceKey.getData()));
         }
@@ -1745,9 +1720,9 @@
               cr = equalityIndex.containsID(txn, key, entryID);
               if (cr == ConditionResult.FALSE)
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugError("Missing ID %d%n%s",
+                  logger.trace("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(equalityIndex, normalizedBytes));
                 }
@@ -1760,11 +1735,11 @@
             }
             catch (DatabaseException e)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
+                logger.traceException(e);
 
-                TRACER.debugError("Error reading database: %s%n%s",
+                logger.trace("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(equalityIndex, normalizedBytes));
               }
@@ -1787,9 +1762,9 @@
                 cr = substringIndex.containsID(txn, key, entryID);
                 if (cr == ConditionResult.FALSE)
                 {
-                  if (debugEnabled())
+                  if (logger.isTraceEnabled())
                   {
-                    TRACER.debugError("Missing ID %d%n%s",
+                    logger.trace("Missing ID %d%n%s",
                                entryID.longValue(),
                                keyDump(substringIndex, key.getData()));
                   }
@@ -1802,11 +1777,11 @@
               }
               catch (DatabaseException e)
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
+                  logger.traceException(e);
 
-                  TRACER.debugError("Error reading database: %s%n%s",
+                  logger.trace("Error reading database: %s%n%s",
                              e.getMessage(),
                              keyDump(substringIndex, key.getData()));
                 }
@@ -1832,9 +1807,9 @@
               cr = orderingIndex.containsID(txn, key, entryID);
               if (cr == ConditionResult.FALSE)
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugError("Missing ID %d%n%s",
+                  logger.trace("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(orderingIndex, normalizedBytes));
                 }
@@ -1847,11 +1822,11 @@
             }
             catch (DatabaseException e)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
+                logger.traceException(e);
 
-                TRACER.debugError("Error reading database: %s%n%s",
+                logger.trace("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(orderingIndex, normalizedBytes));
               }
@@ -1875,9 +1850,9 @@
               cr = approximateIndex.containsID(txn, key, entryID);
               if (cr == ConditionResult.FALSE)
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugError("Missing ID %d%n%s",
+                  logger.trace("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(orderingIndex, normalizedBytes));
                 }
@@ -1890,11 +1865,11 @@
             }
             catch (DatabaseException e)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
+                logger.traceException(e);
 
-                TRACER.debugError("Error reading database: %s%n%s",
+                logger.trace("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(approximateIndex, normalizedBytes));
               }
@@ -2079,10 +2054,7 @@
       }
       catch (DatabaseException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index 691bc59..79fd543 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -30,8 +30,6 @@
 
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.DynamicConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -54,7 +52,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.DiskSpaceMonitor;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.util.LDIFReader;
@@ -70,10 +68,7 @@
  */
 public final class Importer implements DiskSpaceMonitorHandler
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final int TIMER_INTERVAL = 10000;
   private static final int KB = 1024;
@@ -3324,10 +3319,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         LocalizableMessage message = ERR_JEB_IMPORT_LDIF_REBUILD_INDEX_TASK_ERR.get(
           stackTraceToSingleLineString(e));
         logError(message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/RecurringTask.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/RecurringTask.java
index 2cc3dc3..935877a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/RecurringTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/RecurringTask.java
@@ -49,10 +49,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attributes;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.RDN;
 
 import static org.opends.messages.BackendMessages.*;
@@ -70,10 +68,7 @@
  */
 public class RecurringTask
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -304,10 +299,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_RECURRINGTASK_CANNOT_LOAD_CLASS.
           get(String.valueOf(taskClassName), ATTR_TASK_CLASS,
@@ -324,10 +316,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_RECURRINGTASK_CANNOT_INSTANTIATE_CLASS_AS_TASK.get(
           String.valueOf(taskClassName), Task.class.getName());
@@ -344,10 +333,7 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       LocalizableMessage message = ERR_RECURRINGTASK_CANNOT_INITIALIZE_INTERNAL.get(
           String.valueOf(taskClassName), ie.getMessage());
@@ -425,10 +411,7 @@
     try {
       nextTaskDate = getNextIteration(calendar);
     } catch (IllegalArgumentException e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION,
         ERR_RECURRINGTASK_INVALID_TOKENS_COMBO.get(
@@ -468,10 +451,7 @@
       nextTask.initializeTask();
     } catch (Exception e) {
       // Should not happen, debug log it otherwise.
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return nextTask;
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
index 1f4691f..3c94581 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
@@ -30,7 +30,6 @@
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -52,7 +51,7 @@
 import org.opends.messages.Severity;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.EMailMessage;
 import org.opends.server.util.StaticUtils;
@@ -67,10 +66,7 @@
 public abstract class Task
        implements Comparable<Task>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -251,10 +247,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_TASK_CANNOT_PARSE_SCHEDULED_START_TIME.get(timeString, taskDN);
@@ -285,10 +278,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_TASK_CANNOT_PARSE_ACTUAL_START_TIME.get(timeString, taskDN);
@@ -319,10 +309,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_TASK_CANNOT_PARSE_COMPLETION_TIME.get(timeString, taskDN);
@@ -1194,10 +1181,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       taskState = TaskState.STOPPED_BY_ERROR;
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java
index d85a4a6..cd22ab7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java
@@ -48,7 +48,7 @@
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.*;
 import org.forgerock.util.Reject;
@@ -56,7 +56,6 @@
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -71,10 +70,7 @@
        extends Backend
        implements ConfigurationChangeListener<TaskBackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -180,10 +176,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // This should never happen.
         LocalizableMessage message = ERR_TASKBE_CANNOT_DECODE_RECURRING_TASK_BASE_DN.get(
@@ -199,10 +192,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // This should never happen.
         LocalizableMessage message = ERR_TASKBE_CANNOT_DECODE_SCHEDULED_TASK_BASE_DN.get(
@@ -268,10 +258,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
           taskRootDN.toString(), getExceptionMessage(e));
@@ -296,10 +283,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -312,10 +296,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -324,10 +305,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1152,10 +1130,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TASKS_CANNOT_EXPORT_TO_FILE.get(
           stackTraceToSingleLineString(e));
@@ -1197,10 +1172,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     finally
     {
@@ -1210,10 +1182,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
       try
       {
@@ -1221,10 +1190,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1325,10 +1291,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_TASKS_BACKUP_CANNOT_GET_MAC.get(
               macKeyID, stackTraceToSingleLineString(e));
@@ -1348,10 +1311,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_TASKS_BACKUP_CANNOT_GET_DIGEST.get(
               digestAlgorithm, stackTraceToSingleLineString(e));
@@ -1400,10 +1360,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TASKS_BACKUP_CANNOT_CREATE_ARCHIVE_FILE.
           get(String.valueOf(filename), backupDirectory.getPath(),
@@ -1424,10 +1381,7 @@
       }
       catch (CryptoManagerException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_TASKS_BACKUP_CANNOT_GET_CIPHER.get(
                 stackTraceToSingleLineString(e));
@@ -1495,9 +1449,7 @@
       zipStream.closeEntry();
       inputStream.close();
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       try {
         inputStream.close();
@@ -1524,10 +1476,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_TASKS_BACKUP_CANNOT_CLOSE_ZIP_STREAM.get(
           filename, backupDirectory.getPath(), stackTraceToSingleLineString(e));
@@ -1567,10 +1516,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_TASKS_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
           backupDirectory.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -1610,10 +1556,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessageObject());
     }
@@ -1624,10 +1567,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
         backupDirectory.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -2069,10 +2009,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_TASKBE_ERROR_GETTING_BACKING_FILE.get(
               getExceptionMessage(e)));
@@ -2140,10 +2077,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_TASKBE_ERROR_GETTING_BACKING_FILE.get(
               getExceptionMessage(e)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskScheduler.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskScheduler.java
index 42b21a0..3e23598 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -31,7 +31,6 @@
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -47,7 +46,7 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.LDIFException;
 import org.opends.server.util.LDIFReader;
@@ -65,10 +64,7 @@
        extends DirectoryThread
        implements AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -576,10 +572,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       String taskID = completedTask.getTaskID();
@@ -653,10 +646,7 @@
             // log error and continue.
             if (de.getResultCode() != ResultCode.ENTRY_ALREADY_EXISTS)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               LocalizableMessage message =
                   ERR_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION.
@@ -725,10 +715,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -737,10 +724,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     pendingTasks.clear();
@@ -798,10 +782,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -817,10 +798,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -1079,10 +1057,7 @@
         }
         catch (LDIFException le)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, le);
-          }
+          logger.traceException(le);
 
           if (le.canContinueReading())
           {
@@ -1100,10 +1075,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
 
             LocalizableMessage message = ERR_TASKSCHED_CANNOT_PARSE_ENTRY_FATAL.get(
@@ -1168,10 +1140,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               LocalizableMessage message = ERR_TASKSCHED_CANNOT_SCHEDULE_TASK_FROM_ENTRY.
                   get(String.valueOf(entryDN), de.getMessageObject());
@@ -1187,10 +1156,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               LocalizableMessage message =
                   ERR_TASKSCHED_CANNOT_SCHEDULE_RECURRING_TASK_FROM_ENTRY.
@@ -1211,10 +1177,7 @@
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
 
       LocalizableMessage message = ERR_TASKSCHED_ERROR_READING_TASK_BACKING_FILE.get(
           String.valueOf(backingFilePath), stackTraceToSingleLineString(ioe));
@@ -1267,10 +1230,7 @@
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_CREATE_BACKING_FILE.get(
           backingFile, stackTraceToSingleLineString(ioe));
@@ -1278,10 +1238,7 @@
     }
     catch (LDIFException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
 
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_CREATE_BACKING_FILE.get(
@@ -1349,10 +1306,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
 
@@ -1367,10 +1321,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = WARN_TASKSCHED_CANNOT_RENAME_CURRENT_BACKING_FILE.
             get(String.valueOf(backingFilePath),
@@ -1392,10 +1343,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_TASKSCHED_CANNOT_RENAME_NEW_BACKING_FILE.
             get(String.valueOf(tmpFilePath), String.valueOf(backingFilePath),
@@ -1409,10 +1357,7 @@
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_WRITE_BACKING_FILE.get(
           tmpFilePath, stackTraceToSingleLineString(ioe));
@@ -1422,10 +1367,7 @@
     }
     catch (LDIFException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
 
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_WRITE_BACKING_FILE.get(
@@ -1436,10 +1378,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_WRITE_BACKING_FILE.get(
           tmpFilePath, stackTraceToSingleLineString(e));
@@ -2006,10 +1945,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_LOAD_CLASS.
           get(String.valueOf(taskClassName), ATTR_TASK_CLASS,
@@ -2026,10 +1962,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_INSTANTIATE_CLASS_AS_TASK.get(
           String.valueOf(taskClassName), Task.class.getName());
@@ -2044,10 +1977,7 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       LocalizableMessage message = ERR_TASKSCHED_CANNOT_INITIALIZE_INTERNAL.get(
           String.valueOf(taskClassName), ie.getMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskThread.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskThread.java
index 9f54904..1944333 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskThread.java
@@ -30,12 +30,10 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -45,10 +43,7 @@
  */
 public class TaskThread extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -145,10 +140,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -180,10 +172,7 @@
         }
         catch (InterruptedException ie)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-          }
+          logger.traceException(ie);
         }
 
         continue;
@@ -209,10 +198,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         Task task = getAssociatedTask();
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/ConfigEntry.java b/opendj3-server-dev/src/server/org/opends/server/config/ConfigEntry.java
index 9234d9c..24ad447 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/ConfigEntry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/ConfigEntry.java
@@ -37,11 +37,10 @@
 import org.opends.server.api.ConfigChangeListener;
 import org.opends.server.api.ConfigDeleteListener;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -56,10 +55,7 @@
      mayInvoke=true)
 public final class ConfigEntry
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -402,10 +398,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ENTRY_CANNOT_REMOVE_CHILD.
             get(String.valueOf(childDN), String.valueOf(entry.getName()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/DNConfigAttribute.java b/opendj3-server-dev/src/server/org/opends/server/config/DNConfigAttribute.java
index 70388c0..da66038 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/DNConfigAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/DNConfigAttribute.java
@@ -43,8 +43,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ConfigMessages.*;
 /**
@@ -59,10 +58,7 @@
 public final class DNConfigAttribute
        extends ConfigAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -577,10 +573,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       rejectReason.append(ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
               value.getValue().toString(), getName(),
@@ -667,10 +660,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
                 valueString, getName(),
@@ -841,10 +831,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
 
                 LocalizableMessage message = ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
                     v.getValue().toString(), getName(), String.valueOf(e));
@@ -911,10 +898,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message = ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
                   v.getValue().toString(), getName(), String.valueOf(e));
@@ -1204,10 +1188,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
             (String) value, getName(), String.valueOf(e));
@@ -1248,10 +1229,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message = ERR_CONFIG_ATTR_DN_CANNOT_PARSE.get(
                   valueStr, getName(), String.valueOf(e));
@@ -1265,19 +1243,13 @@
         }
         catch (ConfigException ce)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-          }
+          logger.traceException(ce);
 
           throw ce;
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_ATTR_INVALID_DN_VALUE.get(
               getName(), String.valueOf(value), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/IntegerConfigAttribute.java b/opendj3-server-dev/src/server/org/opends/server/config/IntegerConfigAttribute.java
index 117fd5e..d52d84a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/IntegerConfigAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/IntegerConfigAttribute.java
@@ -43,8 +43,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ConfigMessages.*;
 /**
@@ -61,10 +60,7 @@
 public final class IntegerConfigAttribute
        extends ConfigAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -802,10 +798,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       rejectReason.append(ERR_CONFIG_ATTR_INVALID_INT_VALUE.get(
               getName(), stringValue, String.valueOf(e)));
@@ -893,10 +886,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ATTR_INT_COULD_NOT_PARSE.get(
                 valueString, getName(),
@@ -1489,10 +1479,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ATTR_INT_COULD_NOT_PARSE.get(
             String.valueOf(value), getName(), String.valueOf(e));
@@ -1550,19 +1537,13 @@
       }
       catch (ConfigException ce)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-        }
+        logger.traceException(ce);
 
         throw ce;
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_ATTR_INT_COULD_NOT_PARSE.get(
             componentType + "[" + length + "]", getName(), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java b/opendj3-server-dev/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
index 769a910..4d0b4fa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
@@ -44,8 +44,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ConfigMessages.*;
 /**
@@ -69,10 +68,7 @@
 public final class IntegerWithUnitConfigAttribute
        extends ConfigAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -574,10 +570,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_ATTR_COULD_NOT_PARSE_INT_COMPONENT.get(
           String.valueOf(value), getName(), String.valueOf(e));
@@ -695,10 +688,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       rejectReason.append(ERR_CONFIG_ATTR_INT_COULD_NOT_PARSE.get(
               lowerValue, getName(), String.valueOf(e)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/JMXMBean.java b/opendj3-server-dev/src/server/org/opends/server/config/JMXMBean.java
index 7f21fa3..8a6623c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/JMXMBean.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/JMXMBean.java
@@ -55,7 +55,7 @@
 import org.opends.server.api.InvokableComponent;
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.jmx.Credential;
@@ -65,7 +65,6 @@
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -84,10 +83,7 @@
 public final class JMXMBean
        implements DynamicMBean, DirectoryServerMBean
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -162,10 +158,7 @@
           nameStr = MBEAN_BASE_DOMAIN + ":" + "Name=rootDSE" + typeStr;
       } catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_JMX_CANNOT_REGISTER_MBEAN.get(
               configEntryDN.toString(), String.valueOf(e));
@@ -206,20 +199,14 @@
                   }
                 } catch(Exception e)
                 {
-                  if (debugEnabled())
-                  {
-                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                  }
+                  logger.traceException(e);
                 }
 
                 mBeanServer.registerMBean(this, objectName);
 
             } catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
                 e.printStackTrace();
 
                 LocalizableMessage message = ERR_CONFIG_JMX_CANNOT_REGISTER_MBEAN.get(
@@ -495,10 +482,7 @@
     }
     catch (LDAPException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_JMX_CANNOT_GET_ATTRIBUTE.
           get(String.valueOf(attributeName), String.valueOf(configEntryDN),
@@ -538,10 +522,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_JMX_ATTR_NO_ATTR.get(
           String.valueOf(configEntryDN), attributeName);
@@ -640,10 +621,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       // It's possible that this is a monitor attribute rather than a
@@ -753,19 +731,13 @@
           }
           catch (MBeanException me)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, me);
-            }
+            logger.traceException(me);
 
             throw me;
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             throw new MBeanException(e);
           }
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java b/opendj3-server-dev/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
index c9e747e..5f3f227 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
@@ -43,8 +43,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ConfigMessages.*;
 /**
@@ -60,10 +59,7 @@
 public final class MultiChoiceConfigAttribute
        extends ConfigAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1212,19 +1208,13 @@
         }
         catch (ConfigException ce)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-          }
+          logger.traceException(ce);
 
           throw ce;
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_ATTR_INVALID_STRING_VALUE.get(
               getName(), String.valueOf(value), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/config/StringConfigAttribute.java b/opendj3-server-dev/src/server/org/opends/server/config/StringConfigAttribute.java
index a734d7b..ae2680e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/config/StringConfigAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/config/StringConfigAttribute.java
@@ -43,8 +43,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ConfigMessages.*;
 /**
@@ -59,10 +58,7 @@
 public final class StringConfigAttribute
        extends ConfigAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1105,19 +1101,13 @@
         }
         catch (ConfigException ce)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-          }
+          logger.traceException(ce);
 
           throw ce;
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_ATTR_INVALID_STRING_VALUE.get(
               getName(), String.valueOf(value), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/AccountUsableResponseControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/AccountUsableResponseControl.java
index e4c33fb..757392e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/AccountUsableResponseControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/AccountUsableResponseControl.java
@@ -35,8 +35,7 @@
     UNIVERSAL_OCTET_STRING_TYPE;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -150,10 +149,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_ACCTUSABLERES_DECODE_ERROR.get(getExceptionMessage(e));
@@ -173,11 +169,7 @@
    */
   public static final ControlDecoder<AccountUsableResponseControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangeNotificationControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
index a24ae67..cec378e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
@@ -37,8 +37,7 @@
     UNIVERSAL_INTEGER_TYPE;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -108,10 +107,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_ECN_CANNOT_DECODE_VALUE.get(getExceptionMessage(e));
@@ -135,11 +131,7 @@
    */
   public static final ControlDecoder<EntryChangeNotificationControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangelogNotificationControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangelogNotificationControl.java
index bb150c1..a7c73fb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangelogNotificationControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/EntryChangelogNotificationControl.java
@@ -27,8 +27,6 @@
 package org.opends.server.controls;
 import static org.opends.messages.ProtocolMessages.ERR_ECLN_CANNOT_DECODE_VALUE;
 import static org.opends.messages.ProtocolMessages.ERR_ECLN_NO_CONTROL_VALUE;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.getExceptionMessage;
@@ -36,13 +34,12 @@
 import java.io.IOException;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.Control;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 
@@ -56,8 +53,7 @@
 public class EntryChangelogNotificationControl
        extends Control
        {
-  // The tracer object for the debug logger.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The cookie value - payload of this control.
   private String cookie;
@@ -91,10 +87,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
           ERR_ECLN_CANNOT_DECODE_VALUE.get(getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/GetEffectiveRightsRequestControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/GetEffectiveRightsRequestControl.java
index 27a2ac9..b3fd2f5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/GetEffectiveRightsRequestControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/GetEffectiveRightsRequestControl.java
@@ -36,8 +36,7 @@
 import static org.opends.server.util.ServerConstants.OID_GET_EFFECTIVE_RIGHTS;
 import org.opends.server.core.DirectoryServer;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.util.List;
 import java.util.LinkedList;
@@ -128,9 +127,7 @@
           }
           reader.readEndSequence();
         } catch (ASN1Exception e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               INFO_GETEFFECTIVERIGHTS_DECODE_ERROR.get(e.getMessage());
@@ -154,11 +151,7 @@
    */
   public static final ControlDecoder<GetEffectiveRightsRequestControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   //The DN representing the authzId. May be null.
   private DN authzDN=null;
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
index 405e9d7..0633e52 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
@@ -39,8 +39,7 @@
 
 import static org.opends.server.plugins.LDAPADListPlugin.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
@@ -88,10 +87,7 @@
       }
       catch (Exception ae)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-        }
+        logger.traceException(ae);
 
         LocalizableMessage message = ERR_POSTREADREQ_CANNOT_DECODE_VALUE.get(ae
             .getMessage());
@@ -117,11 +113,7 @@
    */
   public static final ControlDecoder<LDAPPostReadRequestControl> DECODER =
       new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of raw attributes to return in the entry.
   private Set<String> rawAttributes;
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
index 7036d23..9837318 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
@@ -34,8 +34,7 @@
 import org.opends.server.protocols.ldap.*;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -80,10 +79,7 @@
       }
       catch (LDAPException le)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+        logger.traceException(le);
 
         LocalizableMessage message =
             ERR_POSTREADRESP_CANNOT_DECODE_VALUE.get(le.getMessage());
@@ -106,13 +102,7 @@
    */
   public static final ControlDecoder<LDAPPostReadResponseControl> DECODER =
     new Decoder();
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
index 36aa3b7..bef96d0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
@@ -41,8 +41,7 @@
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -88,10 +87,7 @@
       }
       catch (Exception ae)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-        }
+        logger.traceException(ae);
 
         LocalizableMessage message = ERR_PREREADREQ_CANNOT_DECODE_VALUE.get(ae
             .getMessage());
@@ -117,11 +113,7 @@
    */
   public static final ControlDecoder<LDAPPreReadRequestControl> DECODER =
       new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of raw attributes to return in the entry.
   private Set<String> rawAttributes;
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
index 4a61c9a..27b873e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.ldap.LDAPReader;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -81,10 +80,7 @@
       }
       catch (LDAPException le)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+        logger.traceException(le);
 
         LocalizableMessage message =
             ERR_PREREADRESP_CANNOT_DECODE_VALUE.get(le.getMessage());
@@ -107,11 +103,7 @@
    */
   public static final ControlDecoder<LDAPPreReadResponseControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesControl.java
index 6da28d9..db2f689 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesControl.java
@@ -37,8 +37,7 @@
     UNIVERSAL_OCTET_STRING_TYPE;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -96,10 +95,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_MATCHEDVALUES_CANNOT_DECODE_VALUE_AS_SEQUENCE.get(
             getExceptionMessage(e));
@@ -122,11 +118,7 @@
    */
   public static final ControlDecoder<MatchedValuesControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -214,10 +206,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java b/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
index cbed6e7..cfdb82e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
@@ -44,8 +44,7 @@
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.forgerock.util.Reject;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -65,10 +64,7 @@
  */
 public class MatchedValuesFilter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -758,10 +754,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_MVFILTER_CANNOT_DECODE_AVA.get(getExceptionMessage(e));
@@ -822,10 +815,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_MVFILTER_CANNOT_DECODE_SUBSTRINGS.get(getExceptionMessage(e));
@@ -845,10 +835,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_MVFILTER_CANNOT_DECODE_PRESENT_TYPE.get(
               getExceptionMessage(e));
@@ -887,10 +874,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_MVFILTER_CANNOT_DECODE_EXTENSIBLE_MATCH.get(
               getExceptionMessage(e));
@@ -1031,10 +1015,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -1093,10 +1074,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           normalizedSubAny = null;
         }
@@ -1140,10 +1118,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -1335,10 +1310,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1365,10 +1337,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1393,10 +1362,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1421,10 +1387,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1456,10 +1419,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1494,10 +1454,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
@@ -1517,10 +1474,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             return false;
           }
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/PagedResultsControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/PagedResultsControl.java
index d3ae99f..cef06c9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/PagedResultsControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/PagedResultsControl.java
@@ -27,8 +27,7 @@
 package org.opends.server.controls;
 import org.forgerock.i18n.LocalizableMessage;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.OID_PAGED_RESULTS_CONTROL;
 
@@ -81,10 +80,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_LDAP_PAGED_RESULTS_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -98,10 +94,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_LDAP_PAGED_RESULTS_DECODE_SIZE.get(String.valueOf(e));
@@ -115,10 +108,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_LDAP_PAGED_RESULTS_DECODE_COOKIE.get(String.valueOf(e));
@@ -131,10 +121,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_LDAP_PAGED_RESULTS_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -156,11 +143,7 @@
    */
   public static final  ControlDecoder<PagedResultsControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/PasswordExpiringControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/PasswordExpiringControl.java
index e5ca851..f4bb32c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/PasswordExpiringControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/PasswordExpiringControl.java
@@ -32,8 +32,7 @@
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -76,10 +75,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWEXPIRING_CANNOT_DECODE_SECONDS_UNTIL_EXPIRATION.
             get(getExceptionMessage(e));
@@ -103,11 +99,7 @@
    */
   public static final ControlDecoder<PasswordExpiringControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
index b395319..52fdb6e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
@@ -34,8 +34,7 @@
 import org.opends.server.protocols.asn1.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.
     UNIVERSAL_OCTET_STRING_TYPE;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
@@ -125,10 +124,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_PWPOLICYRES_DECODE_ERROR.get(getExceptionMessage(e));
@@ -149,11 +145,7 @@
    */
   public static final ControlDecoder<PasswordPolicyResponseControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/PersistentSearchControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/PersistentSearchControl.java
index 4963711..b79a0aa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/PersistentSearchControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/PersistentSearchControl.java
@@ -34,8 +34,7 @@
 import org.opends.server.protocols.asn1.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.
     UNIVERSAL_OCTET_STRING_TYPE;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
@@ -92,10 +91,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_PSEARCH_CANNOT_DECODE_VALUE.get(getExceptionMessage(e));
@@ -119,11 +115,7 @@
    */
   public static final ControlDecoder<PersistentSearchControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV1Control.java b/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
index 773aa48..0de2339 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
@@ -33,14 +33,13 @@
 import org.opends.server.api.AuthenticationPolicyState;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -92,10 +91,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_PROXYAUTH1_CANNOT_DECODE_VALUE.get(getExceptionMessage(e));
@@ -118,11 +114,7 @@
    */
   public static final ControlDecoder<ProxiedAuthV1Control> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV2Control.java b/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
index 3f1a0fe..e774a19 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
@@ -34,14 +34,13 @@
 import org.opends.server.api.IdentityMapper;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
@@ -98,10 +97,7 @@
         if (!lowerAuthZIDStr.startsWith("dn:") &&
             !lowerAuthZIDStr.startsWith("u:"))
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_PROXYAUTH2_INVALID_AUTHZID.get(lowerAuthZIDStr);
@@ -126,11 +122,7 @@
    */
   public static final ControlDecoder<ProxiedAuthV2Control> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/controls/SubentriesControl.java b/opendj3-server-dev/src/server/org/opends/server/controls/SubentriesControl.java
index 6e0dc82..5f5dfbe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/controls/SubentriesControl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/controls/SubentriesControl.java
@@ -30,13 +30,12 @@
 import java.io.IOException;
 
 import org.opends.server.protocols.asn1.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.
     UNIVERSAL_OCTET_STRING_TYPE;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -74,10 +73,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_SUBENTRIES_CANNOT_DECODE_VALUE.get(getExceptionMessage(e));
@@ -99,11 +95,7 @@
    */
   public static final ControlDecoder<SubentriesControl> DECODER =
     new Decoder();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The visibility from the control value.
   private boolean visibility = false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
index 79b6854..accc543 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
@@ -30,7 +30,6 @@
 
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -51,9 +50,8 @@
 import org.opends.server.api.AccessControlHandler;
 import org.opends.server.api.AlertGenerator;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
@@ -71,10 +69,7 @@
        implements AlertGenerator ,
                   ConfigurationChangeListener<AccessControlHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Fully qualified class name.
   private static final String CLASS_NAME =
@@ -310,9 +305,7 @@
         }
       }
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_CONFIG_AUTHZ_UNABLE_TO_INSTANTIATE_HANDLER.
               get(handlerClassName, String.valueOf(config.dn().toString()),
                       stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AddOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/AddOperationBasis.java
index 0e5e9ec..e72a280 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AddOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AddOperationBasis.java
@@ -29,7 +29,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.ArrayList;
@@ -40,8 +39,7 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.*;
@@ -58,11 +56,7 @@
        extends AbstractOperation
        implements PreParseAddOperation, AddOperation, PostResponseAddOperation
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of response controls to send to the client. */
   private ArrayList<Control> responseControls;
@@ -239,10 +233,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
@@ -692,10 +683,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AuthenticatedUsers.java b/opendj3-server-dev/src/server/org/opends/server/core/AuthenticatedUsers.java
index bf9aed8..36d018b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AuthenticatedUsers.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AuthenticatedUsers.java
@@ -37,10 +37,9 @@
 import org.opends.server.api.ChangeNotificationListener;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.DITCacheMap;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.Entry;
 import org.opends.server.types.operation.PostResponseAddOperation;
 import org.opends.server.types.operation.PostResponseDeleteOperation;
@@ -48,7 +47,6 @@
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class provides a data structure which maps an authenticated user DN to
@@ -63,10 +61,7 @@
 public class AuthenticatedUsers
        implements ChangeNotificationListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The mapping between authenticated user DNs and the associated client
   // connection objects.
@@ -330,10 +325,7 @@
             catch (Exception e)
             {
               // Shouldnt happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
           if (authZDN == null)
@@ -352,10 +344,7 @@
             catch (Exception e)
             {
               // Shouldnt happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
           if ((newAuthNDN != null) && (authNDN != null) &&
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
index bd5a15b..8c9de82 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
@@ -45,8 +45,7 @@
 
 import org.opends.server.types.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ConfigMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -71,10 +70,7 @@
      ConfigurationAddListener<BackendCfg>,
      ConfigurationDeleteListener<BackendCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -131,10 +127,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE.get(getExceptionMessage(e));
@@ -197,10 +190,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.
               get(String.valueOf(className), String.valueOf(backendDN),
@@ -260,10 +250,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get(
               backendID, stackTraceToSingleLineString(e));
@@ -280,10 +267,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.
               get(String.valueOf(className), String.valueOf(backendDN),
@@ -304,10 +288,7 @@
           }
           catch (Exception e2)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-            }
+            logger.traceException(e2);
 
             message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.
                 get(backendID, stackTraceToSingleLineString(e2));
@@ -334,10 +315,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(
               backendID, getExceptionMessage(e));
@@ -413,10 +391,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           unacceptableReason.add(de.getMessageObject());
           return false;
@@ -431,10 +406,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           unacceptableReason.add(de.getMessageObject());
           return false;
@@ -468,10 +440,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
 
       unacceptableReason.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
@@ -551,10 +520,7 @@
           }
           catch (Exception e2)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-            }
+            logger.traceException(e2);
 
             LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.
                 get(backend.getBackendID(), stackTraceToSingleLineString(e2));
@@ -573,10 +539,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
 
       messages.add(ERR_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE.get(
@@ -662,10 +625,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
 
           messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
@@ -728,10 +688,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get(
             backendID, stackTraceToSingleLineString(e));
@@ -752,10 +709,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
                 String.valueOf(className), String.valueOf(backendDN),
@@ -776,10 +730,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get(
               backendID, stackTraceToSingleLineString(e2));
@@ -807,10 +758,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(
                 backendID, getExceptionMessage(e));
@@ -887,10 +835,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReason.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
               String.valueOf(className),
@@ -1018,10 +963,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
               String.valueOf(className),
@@ -1060,10 +1002,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get(
           backendID, stackTraceToSingleLineString(e));
@@ -1085,10 +1024,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
               String.valueOf(className),
@@ -1110,10 +1046,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
 
         LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get(
             backendID, stackTraceToSingleLineString(e2));
@@ -1141,10 +1074,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(
               backendID, getExceptionMessage(e));
@@ -1236,10 +1166,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       for (BackendInitializationListener listener :
@@ -1266,10 +1193,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
 
         LocalizableMessage message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get(
             backend.getBackendID(), stackTraceToSingleLineString(e2));
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/BindOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/BindOperationBasis.java
index 2ef3319..bcb316e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/BindOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/BindOperationBasis.java
@@ -29,8 +29,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -38,8 +36,7 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PreParseBindOperation;
@@ -59,10 +56,7 @@
              extends AbstractOperation
              implements BindOperation, PreParseBindOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The credentials used for SASL authentication. */
   private ByteString saslCredentials;
@@ -381,10 +375,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(ResultCode.INVALID_CREDENTIALS);
       setAuthFailureReason(de.getMessageObject());
@@ -741,10 +732,7 @@
     catch(CanceledOperationException coe)
     {
       // This shouldn't happen for bind operations. Just cancel anyways
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/CompareOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/CompareOperationBasis.java
index cf6dbf8..e66ab3d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/CompareOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/CompareOperationBasis.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.ArrayList;
@@ -39,8 +38,7 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PostResponseCompareOperation;
@@ -57,10 +55,7 @@
              implements PreParseCompareOperation, CompareOperation,
                         PostResponseCompareOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The attribute type for this compare operation. */
   private AttributeType attributeType;
@@ -199,10 +194,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResultCode(de.getResultCode());
         appendErrorMessage(de.getMessageObject());
@@ -465,10 +457,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResultCode(de.getResultCode());
         appendErrorMessage(de.getMessageObject());
@@ -494,10 +483,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
index 7acbd38..56c23c7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
@@ -29,8 +29,7 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
 
@@ -57,7 +56,6 @@
 import org.opends.server.protocols.ldap.LDAPConnectionHandler;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
@@ -73,10 +71,7 @@
     ConfigurationAddListener<ConnectionHandlerCfg>,
     ConfigurationDeleteListener<ConnectionHandlerCfg>,
     ConfigurationChangeListener<ConnectionHandlerCfg> {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   // The mapping between configuration entry DNs and their
@@ -127,18 +122,12 @@
         // Register the connection handler with the Directory Server.
         DirectoryServer.registerConnectionHandler(connectionHandler);
       } catch (ConfigException e) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
       } catch (Exception e) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
 
         messages.add(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
@@ -188,18 +177,12 @@
           // Server.
           DirectoryServer.registerConnectionHandler(connectionHandler);
         } catch (ConfigException e) {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(e.getMessageObject());
           resultCode = DirectoryServer.getServerErrorResultCode();
         } catch (Exception e) {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
                   String.valueOf(configuration
@@ -417,10 +400,7 @@
       theClass = pd.loadClass(className, ConnectionHandler.class);
       connectionHandler = theClass.newInstance();
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.
           get(String.valueOf(className), String.valueOf(config.dn()),
@@ -439,10 +419,7 @@
 
       method.invoke(connectionHandler, config);
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.
           get(String.valueOf(className), String.valueOf(config.dn()),
@@ -478,10 +455,7 @@
         connectionHandler = theClass.newInstance();
       }
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(
               ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
@@ -508,10 +482,7 @@
         return false;
       }
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
               String.valueOf(className), String.valueOf(config.dn()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DefaultCompressedSchema.java b/opendj3-server-dev/src/server/org/opends/server/core/DefaultCompressedSchema.java
index c5133cb..4180405 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DefaultCompressedSchema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DefaultCompressedSchema.java
@@ -30,8 +30,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
 import java.io.File;
@@ -44,12 +42,11 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.CompressedSchema;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -61,10 +58,7 @@
  */
 public final class DefaultCompressedSchema extends CompressedSchema
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Synchronizes calls to save.
   private final Object saveLock = new Object();
@@ -178,10 +172,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // FIXME -- Should we do something else here?
       throw new RuntimeException(e);
@@ -197,10 +188,7 @@
       }
       catch (final Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -300,10 +288,7 @@
       }
       catch (final Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         final LocalizableMessage message = ERR_COMPRESSEDSCHEMA_CANNOT_WRITE_UPDATED_DATA
             .get(stackTraceToSingleLineString(e));
@@ -321,10 +306,7 @@
         }
         catch (final Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DeleteOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/DeleteOperationBasis.java
index ab8acef..1b5cb73 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DeleteOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DeleteOperationBasis.java
@@ -28,16 +28,13 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PostResponseDeleteOperation;
@@ -54,10 +51,7 @@
                   DeleteOperation,
                   PostResponseDeleteOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The raw, unprocessed entry DN as included in the client request. */
   private ByteString rawEntryDN;
@@ -167,10 +161,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
@@ -334,10 +325,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
index 0cc5ad2..f9862b8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
@@ -78,7 +78,7 @@
 import org.opends.server.extensions.JMXAlertHandler;
 import org.opends.server.loggers.*;
 import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.debug.TextDebugLogPublisher;
 import org.opends.server.monitors.BackendMonitor;
 import org.opends.server.monitors.ConnectionHandlerMonitor;
@@ -102,10 +102,7 @@
 public final class DirectoryServer
        implements AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The singleton Directory Server instance.
@@ -1061,9 +1058,9 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.WARNING, e);
+          logger.traceException(e);
         }
 
         directoryServer.mBeanServer =
@@ -1074,10 +1071,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CANNOT_CREATE_MBEAN_SERVER.get(String.valueOf(e));
       throw new InitializationException(message, e);
@@ -1111,10 +1105,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CANNOT_LOAD_CONFIG_HANDLER_CLASS.get(
@@ -1161,10 +1152,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CANNOT_INSTANTIATE_CONFIG_HANDLER.get(
@@ -1190,19 +1178,13 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       throw ie;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CANNOT_INITIALIZE_CONFIG_HANDLER.get(
@@ -1251,10 +1233,7 @@
     }
     catch (InitializationException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new InitializationException(e.getMessageObject());
     }
 
@@ -1298,10 +1277,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CANNOT_ACQUIRE_EXCLUSIVE_SERVER_LOCK.get(
               lockFile, stackTraceToSingleLineString(e));
@@ -1506,10 +1482,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
@@ -1620,10 +1593,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CANNOT_BOOTSTRAP_MATCHING_RULE.
           get(currentFactory.getClass().getName(),
@@ -1666,10 +1636,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_CANNOT_BOOTSTRAP_SYNTAX.get(syntax.getClass().getName(),
           stackTraceToSingleLineString(e)));
@@ -1837,10 +1804,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     try
@@ -1849,19 +1813,13 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       throw ie;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CANNOT_INITIALIZE_CONFIG_HANDLER.get(
@@ -2060,10 +2018,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CANNOT_GET_ROOT_DSE_CONFIG_ENTRY.get(
           stackTraceToSingleLineString(e));
@@ -2472,10 +2427,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       throw new InitializationException(de.getMessageObject());
     }
@@ -2677,10 +2629,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       throw new InitializationException(de.getMessageObject());
     }
@@ -2810,10 +2759,7 @@
          ServerManagementContext.getInstance().getRootConfiguration();
     rootDSECfg = root.getRootDSEBackend();
   }  catch (Exception e) {
-    if (debugEnabled())
-    {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-    }
+    logger.traceException(e);
     LocalizableMessage message = ERR_CANNOT_GET_ROOT_DSE_CONFIG_ENTRY.get(
         stackTraceToSingleLineString(e));
     throw new InitializationException(message, e);
@@ -3774,10 +3720,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
 
@@ -3799,10 +3742,7 @@
         catch (Exception e)
         {
           // This should never happen.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -4636,10 +4576,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -5367,10 +5304,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -5404,10 +5338,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7580,10 +7511,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7609,10 +7537,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7663,10 +7588,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7692,10 +7614,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7747,10 +7666,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7776,10 +7692,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7831,10 +7744,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7860,10 +7770,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -7970,10 +7877,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
     directoryServer.connectionHandlers.clear();
@@ -8024,10 +7928,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -8054,10 +7955,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -8074,10 +7972,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -8092,10 +7987,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -8146,10 +8038,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -8186,10 +8075,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           message = WARN_SHUTDOWN_CANNOT_RELEASE_SHARED_BACKEND_LOCK.
               get(backend.getBackendID(), stackTraceToSingleLineString(e2));
@@ -8199,10 +8085,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -8224,9 +8107,7 @@
             logError(message);
         }
     } catch (Exception e) {
-        if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
     }
 
     // Deregister all workflows.
@@ -8921,10 +8802,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This could theoretically happen if an alert needs to be sent before the
       // configuration is initialized.  In that case, just return an empty DN.
@@ -9209,10 +9087,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CANNOT_ACQUIRE_EXCLUSIVE_SERVER_LOCK.get(lockFile,
                                   stackTraceToSingleLineString(e));
@@ -9383,10 +9258,7 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       LocalizableMessage message = ERR_DSCORE_CANNOT_BOOTSTRAP.get(ie.getMessage());
       System.err.println(message);
@@ -9406,20 +9278,14 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       LocalizableMessage message = ERR_DSCORE_CANNOT_START.get(ie.getMessage());
       shutDown(theDirectoryServer.getClass().getName(), message);
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       LocalizableMessage message = ERR_DSCORE_CANNOT_START.get(ce.getMessage() +
       (ce.getCause() != null ? " " + ce.getCause().getLocalizedMessage() : ""));
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServerShutdownHook.java b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
index 663630c..1ea6a0f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
@@ -22,14 +22,14 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.core;
 
 
 import org.opends.server.api.DirectoryThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.CoreMessages.*;
 /**
  * This class defines a shutdown hook that will be invoked automatically when
@@ -40,10 +40,7 @@
 public class DirectoryServerShutdownHook
        extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -70,7 +67,7 @@
    */
   public void run()
   {
-    TRACER.debugInfo(
+    logger.trace(
         "Directory Server shutdown hook has been invoked.");
 
     DirectoryServer.shutDown(CLASS_NAME,
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
index eafe60a..dd43c90 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
@@ -50,9 +50,8 @@
 import org.opends.server.admin.std.meta.EntryCacheCfgDefn;
 import org.opends.server.api.EntryCache;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -64,7 +63,6 @@
 import org.opends.server.monitors.EntryCacheMonitorProvider;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.messages.ConfigMessages.*;
@@ -83,10 +81,7 @@
           ConfigurationAddListener    <EntryCacheCfg>,
           ConfigurationDeleteListener <EntryCacheCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default entry cache.
   private DefaultEntryCache _defaultEntryCache = null;
@@ -132,10 +127,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_ENTRYCACHE_CANNOT_INSTALL_DEFAULT_CACHE.get(
           stackTraceToSingleLineString(e));
@@ -179,10 +171,7 @@
       DN configEntryDN = DN.valueOf(ConfigConstants.DN_ENTRY_CACHE_BASE);
       entryCacheBase   = DirectoryServer.getConfigEntry(configEntryDN);
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(WARN_CONFIG_ENTRYCACHE_NO_CONFIG_ENTRY.get());
       return;
@@ -679,9 +668,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (!initialize) {
         if (e instanceof InitializationException) {
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationBasis.java
index 0cd4545..19dfe3e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationBasis.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 import java.util.ArrayList;
@@ -38,8 +37,7 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.api.plugin.PluginResult;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PostOperationExtendedOperation;
@@ -59,10 +57,7 @@
                   PostOperationExtendedOperation,
                   PostResponseExtendedOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The value for the request associated with this extended operation. */
   private ByteString requestValue;
@@ -431,10 +426,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
index 49b58b4..e7a88a1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
@@ -44,14 +44,12 @@
 import org.opends.server.admin.std.meta.ExtendedOperationHandlerCfgDefn;
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ConfigMessages.*;
 
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -70,10 +68,7 @@
      ConfigurationAddListener<ExtendedOperationHandlerCfg>,
      ConfigurationDeleteListener<ExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -208,18 +203,12 @@
           handlers.put(dn, handler);
 
         } catch (ConfigException e) {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(e.getMessageObject());
           resultCode = DirectoryServer.getServerErrorResultCode();
         } catch (Exception e) {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
                   String.valueOf(configuration.getJavaClass()),
@@ -294,20 +283,14 @@
       }
       catch (ConfigException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
                 String.valueOf(configuration.getJavaClass()),
@@ -362,10 +345,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_EXTOP_INVALID_CLASS.
           get(String.valueOf(className), String.valueOf(config.dn()),
@@ -412,10 +392,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_CONFIG_EXTOP_INVALID_CLASS.get(className,
                               String.valueOf(config.dn()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
index d6e66c9..b3f1854 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
@@ -49,7 +49,7 @@
 import org.opends.server.api.plugin.PluginResult.PostOperation;
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
@@ -60,7 +60,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -82,10 +81,7 @@
                   ConfigurationDeleteListener<GroupImplementationCfg>,
                   BackendInitializationListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -600,10 +596,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         continue;
       }
 
@@ -619,10 +612,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           continue;
         }
 
@@ -642,10 +632,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // FIXME -- Is there anything that we need to do here?
           continue;
@@ -664,10 +651,7 @@
             }
             catch (DirectoryException e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               // Nothing specific to do, as it's already logged.
             }
           }
@@ -862,10 +846,7 @@
         {
           // Should not happen but if it does all we
           // can do here is debug log it and continue.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
           continue;
         }
         group.setGroupDN(groupDN);
@@ -1035,10 +1016,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/IdleTimeLimitThread.java b/opendj3-server-dev/src/server/org/opends/server/core/IdleTimeLimitThread.java
index f165a65..865f5cb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/IdleTimeLimitThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/IdleTimeLimitThread.java
@@ -33,12 +33,9 @@
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.api.ServerShutdownListener;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DisconnectReason;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.CoreMessages.*;
 
@@ -57,7 +54,7 @@
   /**
    * The debug log tracer for this object.
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -106,10 +103,7 @@
             catch (InterruptedException e)
             {
               // Server shutdown monitor may interrupt slow threads.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               shutdownRequested = true;
               break;
             }
@@ -129,9 +123,9 @@
               {
                 if (idleTime >= idleTimeLimit)
                 {
-                  if (debugEnabled())
+                  if (logger.isTraceEnabled())
                   {
-                    TRACER.debugInfo("Terminating client connection " +
+                    logger.trace("Terminating client connection " +
                                      c.getConnectionID() +
                                      " due to the idle time limit");
                   }
@@ -143,10 +137,7 @@
                   }
                   catch (Exception e)
                   {
-                    if (debugEnabled())
-                    {
-                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                    }
+                    logger.traceException(e);
 
                     LocalizableMessage message = ERR_IDLETIME_DISCONNECT_ERROR.get(
                             c.getConnectionID(),
@@ -170,10 +161,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_IDLETIME_UNEXPECTED_ERROR.get(stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/LockFileManager.java b/opendj3-server-dev/src/server/org/opends/server/core/LockFileManager.java
index e3aba46..83a1753 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/LockFileManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/LockFileManager.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.core;
 
@@ -34,11 +34,9 @@
 import java.util.Map;
 
 import org.opends.server.api.Backend;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -49,11 +47,7 @@
  */
 public class LockFileManager
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** A map between the filenames and the lock files for exclusive locks. */
   private static Map<String, FileLock> exclusiveLocks =
@@ -122,10 +116,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         failureReason.append(
                 ERR_FILELOCKER_LOCK_SHARED_FAILED_CREATE.get(lockFile,
@@ -144,10 +135,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         failureReason.append(ERR_FILELOCKER_LOCK_SHARED_FAILED_OPEN.get(
                 lockFile, getExceptionMessage(e)));
@@ -164,10 +152,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         failureReason.append(
                 ERR_FILELOCKER_LOCK_SHARED_FAILED_LOCK.get(
@@ -245,10 +230,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         failureReason.append(
                 ERR_FILELOCKER_LOCK_EXCLUSIVE_FAILED_CREATE.get(lockFile,
                                         getExceptionMessage(e)));
@@ -266,10 +248,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         failureReason.append(ERR_FILELOCKER_LOCK_EXCLUSIVE_FAILED_OPEN.get(
                 lockFile, getExceptionMessage(e)));
@@ -286,10 +265,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         failureReason.append(
                 ERR_FILELOCKER_LOCK_EXCLUSIVE_FAILED_LOCK.get(lockFile,
@@ -350,10 +326,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           failureReason.append(
                   ERR_FILELOCKER_UNLOCK_EXCLUSIVE_FAILED_RELEASE.get(lockFile,
@@ -367,10 +340,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // Even though we couldn't close the channel for some reason, this
           // should still be OK because we released the lock above.
@@ -398,10 +368,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             failureReason.append(ERR_FILELOCKER_UNLOCK_SHARED_FAILED_RELEASE
                     .get(lockFile, getExceptionMessage(e)));
@@ -414,10 +381,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // Even though we couldn't close the channel for some reason, this
             // should still be OK because we released the lock above.
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
index 77266df..55e882a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
@@ -38,12 +38,10 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.ResultCode;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.loggers.RetentionPolicy;
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ConfigMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -64,10 +62,7 @@
     ConfigurationDeleteListener<LogRetentionPolicyCfg>,
     ConfigurationChangeListener<LogRetentionPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -138,17 +133,11 @@
       DirectoryServer.registerRetentionPolicy(config.dn(), RetentionPolicy);
     }
     catch (ConfigException e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       messages.add(e.getMessageObject());
       resultCode = DirectoryServer.getServerErrorResultCode();
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_RETENTION_POLICY_CANNOT_CREATE_POLICY.get(
               String.valueOf(config.dn().toString()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
index 8cbac47..f1e7780 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
@@ -39,11 +39,9 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.ResultCode;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ConfigMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -64,10 +62,7 @@
     ConfigurationDeleteListener<LogRotationPolicyCfg>,
     ConfigurationChangeListener<LogRotationPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -138,17 +133,11 @@
       DirectoryServer.registerRotationPolicy(config.dn(), rotationPolicy);
     }
     catch (ConfigException e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       messages.add(e.getMessageObject());
       resultCode = DirectoryServer.getServerErrorResultCode();
     } catch (Exception e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_CONFIG_ROTATION_POLICY_CANNOT_CREATE_POLICY.get(
               String.valueOf(config.dn().toString()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ModifyDNOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/ModifyDNOperationBasis.java
index e0dca96..52ac8c2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ModifyDNOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ModifyDNOperationBasis.java
@@ -28,16 +28,13 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
@@ -54,11 +51,7 @@
                   PreParseModifyDNOperation,
                   PostResponseModifyDNOperation
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Indicates whether to delete the old RDN value from the entry. */
   private boolean deleteOldRDN;
@@ -237,10 +230,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
     }
@@ -283,10 +273,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
@@ -355,10 +342,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResultCode(de.getResultCode());
         appendErrorMessage(de.getMessageObject());
@@ -559,10 +543,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ModifyOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/ModifyOperationBasis.java
index b0277c1..7d06dba 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ModifyOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ModifyOperationBasis.java
@@ -28,16 +28,13 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.protocols.ldap.LDAPModification;
 import org.opends.server.protocols.ldap.LDAPResultCode;
@@ -56,11 +53,7 @@
        PreParseModifyOperation,
        PostResponseModifyOperation
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The raw, unprocessed entry DN as included by the client request. */
   private ByteString rawEntryDN;
@@ -187,10 +180,7 @@
         entryDN = DN.decode(rawEntryDN);
       }
       catch (DirectoryException de) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResultCode(de.getResultCode());
         appendErrorMessage(de.getMessageObject());
@@ -274,10 +264,7 @@
       }
       catch (LDAPException le)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+        logger.traceException(le);
         setResultCode(ResultCode.valueOf(le.getResultCode()));
         appendErrorMessage(le.getMessageObject());
         modifications = null;
@@ -454,10 +441,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
index de46c7e..197b0d8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
@@ -30,8 +30,6 @@
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
 import java.lang.reflect.InvocationTargetException;
@@ -52,7 +50,7 @@
 import org.opends.server.api.AuthenticationPolicyFactory;
 import org.opends.server.api.SubentryChangeListener;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 
 
@@ -67,10 +65,7 @@
     ConfigurationAddListener<AuthenticationPolicyCfg>,
     ConfigurationDeleteListener<AuthenticationPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -377,9 +372,9 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Could not create password policy subentry "
+          logger.trace("Could not create password policy subentry "
               + "DN %s: %s", entry.getName().toString(),
               stackTraceToSingleLineString(e));
         }
@@ -423,9 +418,9 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Could not create password policy subentry "
+          logger.trace("Could not create password policy subentry "
               + "DN %s: %s", newEntry.getName().toString(),
               stackTraceToSingleLineString(e));
         }
@@ -456,9 +451,9 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Could not create password policy subentry "
+          logger.trace("Could not create password policy subentry "
               + "DN %s: %s", newEntry.getName().toString(),
               stackTraceToSingleLineString(e));
         }
@@ -502,10 +497,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
           String.valueOf(policyConfiguration.dn()),
@@ -542,10 +534,7 @@
         }
       }
 
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
           String.valueOf(policyConfiguration.dn()),
@@ -603,10 +592,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
           String.valueOf(policyConfiguration.dn()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java
index 99f68bc..7d91f10 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java
@@ -30,8 +30,6 @@
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.getExceptionMessage;
@@ -47,7 +45,7 @@
 import org.opends.server.admin.std.server.PasswordPolicyCfg;
 import org.opends.server.api.*;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
@@ -65,10 +63,7 @@
 public final class PasswordPolicyFactory implements
     AuthenticationPolicyFactory<PasswordPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -78,10 +73,7 @@
   private static final class PasswordPolicyImpl extends PasswordPolicy
       implements ConfigurationChangeListener<PasswordPolicyCfg>
   {
-    /**
-     * The tracer object for the debug logger.
-     */
-    private static final DebugTracer TRACER = getTracer();
+    private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
     // Current configuration.
     private PasswordPolicyCfg configuration;
@@ -374,10 +366,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWPOLICY_CANNOT_DETERMINE_REQUIRE_CHANGE_BY_TIME
             .get(String.valueOf(configEntryDN), getExceptionMessage(e));
@@ -395,10 +384,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_PWPOLICY_INVALID_LAST_LOGIN_TIME_FORMAT.get(
               String.valueOf(configEntryDN), String.valueOf(formatString));
@@ -420,10 +406,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message =
               ERR_PWPOLICY_INVALID_PREVIOUS_LAST_LOGIN_TIME_FORMAT
@@ -1224,20 +1207,14 @@
     }
     catch (final ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       unacceptableReasons.add(ce.getMessageObject());
       return false;
     }
     catch (final InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       unacceptableReasons.add(ie.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyState.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyState.java
index dd1af5d..230e426 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyState.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyState.java
@@ -36,7 +36,7 @@
 import org.opends.server.admin.std.meta.PasswordPolicyCfgDefn;
 import org.opends.server.api.*;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.schema.AuthPasswordSyntax;
@@ -46,7 +46,6 @@
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -58,10 +57,7 @@
  */
 public final class PasswordPolicyState extends AuthenticationPolicyState
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -185,18 +181,18 @@
 
     if (stringValue == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning null because attribute %s does not " +
+        logger.trace("Returning null because attribute %s does not " +
             "exist in user entry %s",
             attributeType.getNameOrOID(), userDNString);
       }
     }
     else
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning value %s for user %s",
+        logger.trace("Returning value %s for user %s",
             stringValue, userDNString);
       }
     }
@@ -238,11 +234,11 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
+              logger.traceException(e);
 
-              TRACER.debugWarning("Unable to decode value %s for attribute %s" +
+              logger.trace("Unable to decode value %s for attribute %s" +
                   "in user entry %s: %s",
                   v.getValue().toString(), attributeType.getNameOrOID(),
                   userDNString, stackTraceToSingleLineString(e));
@@ -260,9 +256,9 @@
 
     if (timeValues.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning an empty list because attribute %s " +
+        logger.trace("Returning an empty list because attribute %s " +
             "does not exist in user entry %s",
             attributeType.getNameOrOID(), userDNString);
       }
@@ -336,9 +332,9 @@
         {
           passwordChangedTime = 0;
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning(
+            logger.trace(
                 "Could not determine password changed time for " + "user %s.",
                 userDNString);
           }
@@ -415,9 +411,9 @@
    */
   public void setPasswordChangedTime(long passwordChangedTime)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Setting password changed time for user %s to " +
+      logger.trace("Setting password changed time for user %s to " +
           "current time of %d", userDNString, currentTime);
     }
 
@@ -444,9 +440,9 @@
    */
   public void clearPasswordChangedTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing password changed time for user %s",
+      logger.trace("Clearing password changed time for user %s",
           userDNString);
     }
 
@@ -487,9 +483,9 @@
    */
   public void setDisabled(boolean isDisabled)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating user %s to set the disabled flag to %b",
+      logger.trace("Updating user %s to set the disabled flag to %b",
           userDNString, isDisabled);
     }
 
@@ -529,9 +525,9 @@
   {
     if (isAccountExpired != ConditionResult.UNDEFINED)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored result of %b for user %s",
+        logger.trace("Returning stored result of %b for user %s",
             (isAccountExpired == ConditionResult.TRUE), userDNString);
       }
 
@@ -548,15 +544,12 @@
      }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       isAccountExpired = ConditionResult.TRUE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-          TRACER.debugWarning("User %s is considered to have an expired " +
+          logger.trace("User %s is considered to have an expired " +
                "account because an error occurred while attempting to make " +
                "the determination: %s.",
               userDNString, stackTraceToSingleLineString(e));
@@ -569,9 +562,9 @@
     {
       // The user does have an expiration time, but it hasn't arrived yet.
       isAccountExpired = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("The account for user %s is not expired because " +
+        logger.trace("The account for user %s is not expired because " +
             "the expiration time has not yet arrived.", userDNString);
       }
     }
@@ -579,9 +572,9 @@
     {
       // The user does have an expiration time, and it is in the past.
       isAccountExpired = ConditionResult.TRUE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("The account for user %s is expired because the " +
+        logger.trace("The account for user %s is expired because the " +
             "expiration time in that account has passed.", userDNString);
       }
     }
@@ -590,9 +583,9 @@
       // The user doesn't have an expiration time in their entry, so it
       // can't be expired.
       isAccountExpired = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("The account for user %s is not expired because " +
+        logger.trace("The account for user %s is not expired because " +
             "there is no expiration time in the user's entry.",
             userDNString);
       }
@@ -637,9 +630,9 @@
     {
       String timeStr = GeneralizedTimeSyntax.format(accountExpirationTime);
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Setting account expiration time for user %s to %s",
+        logger.trace("Setting account expiration time for user %s to %s",
             userDNString, timeStr);
       }
 
@@ -660,9 +653,9 @@
    */
   public void clearAccountExpirationTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing account expiration time for user %s",
+      logger.trace("Clearing account expiration time for user %s",
           userDNString);
     }
 
@@ -693,9 +686,9 @@
   {
     if (authFailureTimes != null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored auth failure time list of %d " +
+        logger.trace("Returning stored auth failure time list of %d " +
             "elements for user %s",
             authFailureTimes.size(), userDNString);
       }
@@ -717,14 +710,11 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Error while processing auth failure times " +
+        logger.trace("Error while processing auth failure times " +
              "for user %s: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
@@ -739,9 +729,9 @@
 
     if (authFailureTimes.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning an empty auth failure time list for " +
+        logger.trace("Returning an empty auth failure time list for " +
             "user %s because the attribute is absent from the entry.",
             userDNString);
       }
@@ -762,9 +752,9 @@
         long l = iterator.next();
         if (l < expirationTime)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Removing expired auth failure time %d for " +
+            logger.trace("Removing expired auth failure time %d for " +
                 "user %s", l, userDNString);
           }
 
@@ -790,9 +780,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning auth failure time list of %d elements " +
+      logger.trace("Returning auth failure time list of %d elements " +
           "for user %s", authFailureTimes.size(), userDNString);
     }
 
@@ -813,9 +803,9 @@
       return;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating authentication failure times for user %s",
+      logger.trace("Updating authentication failure times for user %s",
           userDNString);
     }
 
@@ -859,9 +849,9 @@
     if ((lockoutCount > 0) && (lockoutCount <= authFailureTimes.size()))
     {
       setFailureLockedTime(highestFailureTime);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Locking user account %s due to too many failures.",
+        logger.trace("Locking user account %s due to too many failures.",
             userDNString);
       }
     }
@@ -911,9 +901,9 @@
     if ((lockoutCount > 0) && (lockoutCount <= authFailureTimes.size()))
     {
       setFailureLockedTime(highestFailureTime);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Locking user account %s due to too many failures.",
+        logger.trace("Locking user account %s due to too many failures.",
             userDNString);
       }
     }
@@ -927,9 +917,9 @@
    */
   private void clearAuthFailureTimes()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing authentication failure times for user %s",
+      logger.trace("Clearing authentication failure times for user %s",
           userDNString);
     }
 
@@ -981,15 +971,12 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       failureLockedTime = currentTime;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Returning current time for user %s because an " +
+        logger.trace("Returning current time for user %s because an " +
             "error occurred: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
@@ -1039,9 +1026,9 @@
    */
   private void clearFailureLockedTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing failure lockout time for user %s.",
+      logger.trace("Clearing failure lockout time for user %s.",
           userDNString);
     }
 
@@ -1089,9 +1076,9 @@
     final int maxFailures = passwordPolicy.getLockoutFailureCount();
     if (maxFailures <= 0)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s because lockout due " +
+        logger.trace("Returning false for user %s because lockout due " +
             "to failures is not enabled.", userDNString);
       }
 
@@ -1117,9 +1104,9 @@
       // failure times might have accumulated to trigger a lockout.
       if (getAuthFailureTimes().size() < maxFailures)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning false for user %s because there is " +
+          logger.trace("Returning false for user %s because there is " +
               "no locked time.", userDNString);
         }
 
@@ -1129,9 +1116,9 @@
       // The account isn't locked but should be, so do so now.
       setFailureLockedTime(currentTime);// FIXME: set to max(failureTimes)?
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Locking user %s because there were enough " +
+        logger.trace("Locking user %s because there were enough " +
             "existing failures even though there was no account locked time.",
             userDNString);
       }
@@ -1147,9 +1134,9 @@
       {
         secondsUntilUnlock = (int) ((unlockTime - currentTime) / 1000);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning true for user %s because there is a " +
+          logger.trace("Returning true for user %s because there is a " +
               "locked time and the lockout duration has not been reached.",
               userDNString);
         }
@@ -1160,9 +1147,9 @@
       // The lockout in the entry has expired...
       clearFailureLockout();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s " +
+        logger.trace("Returning false for user %s " +
             "because the existing lockout has expired.", userDNString);
       }
 
@@ -1170,9 +1157,9 @@
       return false;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning true for user %s " +
+      logger.trace("Returning true for user %s " +
           "because there is a locked time and no lockout duration.",
           userDNString);
     }
@@ -1227,9 +1214,9 @@
   {
     if (lastLoginTime != Long.MIN_VALUE)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored last login time of %d for " +
+        logger.trace("Returning stored last login time of %d for " +
             "user %s.", lastLoginTime, userDNString);
       }
 
@@ -1244,9 +1231,9 @@
     if ((type == null) || (format == null))
     {
       lastLoginTime = -1;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning -1 for user %s because no last login " +
+        logger.trace("Returning -1 for user %s because no last login " +
             "time will be maintained.", userDNString);
       }
 
@@ -1275,9 +1262,9 @@
           }
           lastLoginTime = dateFormat.parse(valueString).getTime();
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Returning last login time of %d for user %s" +
+            logger.trace("Returning last login time of %d for user %s" +
                 "decoded using current last login time format.",
                 lastLoginTime, userDNString);
           }
@@ -1286,10 +1273,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // This could mean that the last login time was encoded using a
           // previous format.
@@ -1304,9 +1288,9 @@
               }
               lastLoginTime = dateFormat.parse(valueString).getTime();
 
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugInfo("Returning last login time of %d for " +
+                logger.trace("Returning last login time of %d for " +
                     "user %s decoded using previous last login time format " +
                     "of %s.", lastLoginTime, userDNString, f);
               }
@@ -1315,17 +1299,14 @@
             }
             catch (Exception e2)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
 
           assert lastLoginTime == -1;
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-              TRACER.debugWarning("Returning -1 for user %s because the " +
+              logger.trace("Returning -1 for user %s because the " +
                   "last login time value %s could not be parsed using any " +
                   "known format.", userDNString, valueString);
           }
@@ -1336,9 +1317,9 @@
     }
 
     assert lastLoginTime == -1;
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning %d for user %s because no last " +
+      logger.trace("Returning %d for user %s because no last " +
           "login time value exists.", lastLoginTime, userDNString);
     }
 
@@ -1389,14 +1370,11 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Unable to set last login time for user %s " +
+        logger.trace("Unable to set last login time for user %s " +
             "because an error occurred: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
@@ -1408,9 +1386,9 @@
     String existingTimestamp = getValue(type);
     if ((existingTimestamp != null) && timestamp.equals(existingTimestamp))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Not updating last login time for user %s " +
+        logger.trace("Not updating last login time for user %s " +
             "because the new value matches the existing value.",
             userDNString);
       }
@@ -1422,9 +1400,9 @@
     Attribute a = Attributes.create(type, timestamp);
     modifications.add(new Modification(ModificationType.REPLACE, a, true));
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updated the last login time for user %s to %s",
+      logger.trace("Updated the last login time for user %s to %s",
           userDNString, timestamp);
     }
   }
@@ -1437,9 +1415,9 @@
    */
   public void clearLastLoginTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing last login time for user %s", userDNString);
+      logger.trace("Clearing last login time for user %s", userDNString);
     }
 
     lastLoginTime = -1;
@@ -1464,9 +1442,9 @@
   {
     if (isIdleLocked != ConditionResult.UNDEFINED)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored result of %b for user %s",
+        logger.trace("Returning stored result of %b for user %s",
             (isIdleLocked == ConditionResult.TRUE), userDNString);
       }
 
@@ -1479,9 +1457,9 @@
     {
       isIdleLocked = ConditionResult.FALSE;
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s because no idle " +
+        logger.trace("Returning false for user %s because no idle " +
             "lockout interval is defined.", userDNString);
       }
       return false;
@@ -1495,7 +1473,7 @@
     if (theLastLoginTime > lockTime || getPasswordChangedTime() > lockTime)
     {
       isIdleLocked = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         StringBuilder reason = new StringBuilder();
         if(theLastLoginTime > lockTime)
@@ -1511,21 +1489,21 @@
           reason.append(
               "the password changed time is in an acceptable window");
         }
-        TRACER.debugInfo("Returning false for user %s because %s.",
+        logger.trace("Returning false for user %s because %s.",
             userDNString, reason.toString());
       }
     }
     else
     {
       isIdleLocked = ConditionResult.TRUE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         String reason = (theLastLoginTime < 0)
             ? "there is no last login time and the password " +
             "changed time is not in an acceptable window"
             : "neither last login time nor password " +
             "changed time are in an acceptable window";
-        TRACER.debugInfo("Returning true for user %s because %s.",
+        logger.trace("Returning true for user %s because %s.",
             userDNString, reason);
       }
     }
@@ -1546,9 +1524,9 @@
   {
     if(mustChangePassword != ConditionResult.UNDEFINED)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored result of %b for user %s.",
+        logger.trace("Returning stored result of %b for user %s.",
             (mustChangePassword == ConditionResult.TRUE), userDNString);
       }
 
@@ -1566,9 +1544,9 @@
                || passwordPolicy.isForceChangeOnReset())))
     {
       mustChangePassword = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s because neither " +
+        logger.trace("Returning false for user %s because neither " +
             "force change on add nor force change on reset is enabled, " +
             "or users are not allowed to self-modify passwords.",
             userDNString);
@@ -1592,11 +1570,11 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
 
-        TRACER.debugWarning("Returning true for user %s because an error " +
+        logger.trace("Returning true for user %s because an error " +
             "occurred: %s", userDNString, stackTraceToSingleLineString(e));
       }
 
@@ -1608,9 +1586,9 @@
     if(mustChangePassword == ConditionResult.UNDEFINED)
     {
       mustChangePassword = ConditionResult.FALSE;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning %b for user since the attribute \"%s\"" +
+        logger.trace("Returning %b for user since the attribute \"%s\"" +
             " is not present in the entry.",
             false, userDNString, OP_ATTR_PWPOLICY_RESET_REQUIRED);
       }
@@ -1618,9 +1596,9 @@
       return false;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning %b for user %s.",
+      logger.trace("Returning %b for user %s.",
           (mustChangePassword == ConditionResult.TRUE), userDNString);
     }
 
@@ -1638,9 +1616,9 @@
 */
   public void setMustChangePassword(boolean mustChangePassword)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating user %s to set the reset flag to %b",
+      logger.trace("Updating user %s to set the reset flag to %b",
           userDNString, mustChangePassword);
     }
 
@@ -1688,9 +1666,9 @@
     // attribute.
     if (passwordPolicy.getMaxPasswordResetAge() <= 0L)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s because there is no " +
+        logger.trace("Returning false for user %s because there is no " +
             "maximum reset age.", userDNString);
       }
 
@@ -1699,9 +1677,9 @@
 
     if (! mustChangePassword())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false for user %s because the user's " +
+        logger.trace("Returning false for user %s because the user's " +
             "password has not been reset.", userDNString);
       }
 
@@ -1712,9 +1690,9 @@
         (1000L * passwordPolicy.getMaxPasswordResetAge());
     boolean locked = (maxResetTime < currentTime);
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning %b for user %s after comparing the " +
+      logger.trace("Returning %b for user %s after comparing the " +
           "current and max reset times.", locked, userDNString);
     }
 
@@ -1908,9 +1886,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning password expiration time of %d for user " +
+      logger.trace("Returning password expiration time of %d for user " +
           "%s.", passwordExpirationTime, userDNString);
     }
 
@@ -1954,9 +1932,9 @@
     if (minAge <= 0L)
     {
       // There is no minimum age, so the user isn't in it.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false because there is no minimum age.");
+        logger.trace("Returning false because there is no minimum age.");
       }
 
       return false;
@@ -1964,9 +1942,9 @@
     else if ((getPasswordChangedTime() + (minAge*1000L)) < currentTime)
     {
       // It's been long enough since the user changed their password.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false because the minimum age has " +
+        logger.trace("Returning false because the minimum age has " +
             "expired.");
       }
 
@@ -1975,9 +1953,9 @@
     else if (mustChangePassword())
     {
       // The user is in a must-change mode, so the minimum age doesn't apply.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false because the account is in a " +
+        logger.trace("Returning false because the account is in a " +
             "must-change state.");
       }
 
@@ -1986,9 +1964,9 @@
     else
     {
       // The user is within the minimum age.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning true.");
+        logger.trace("Returning true.");
       }
 
       return true;
@@ -2100,9 +2078,9 @@
   {
     if (requiredChangeTime != Long.MIN_VALUE)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning stored required change time of %d for " +
+        logger.trace("Returning stored required change time of %d for " +
             "user %s", requiredChangeTime, userDNString);
       }
 
@@ -2118,15 +2096,12 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       requiredChangeTime = -1;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Returning %d for user %s because an error " +
+        logger.trace("Returning %d for user %s because an error " +
             "occurred: %s", requiredChangeTime, userDNString,
                      stackTraceToSingleLineString(e));
       }
@@ -2134,9 +2109,9 @@
       return requiredChangeTime;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning required change time of %d for user %s",
+      logger.trace("Returning required change time of %d for user %s",
           requiredChangeTime, userDNString);
     }
 
@@ -2169,9 +2144,9 @@
    */
   public void setRequiredChangeTime(long requiredChangeTime)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating required change time for user %s",
+      logger.trace("Updating required change time for user %s",
           userDNString);
     }
 
@@ -2197,9 +2172,9 @@
    */
   public void clearRequiredChangeTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing required change time for user %s",
+      logger.trace("Clearing required change time for user %s",
           userDNString);
     }
 
@@ -2232,14 +2207,11 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning("Unable to decode the warned time for user %s: " +
+          logger.trace("Unable to decode the warned time for user %s: " +
               "%s", userDNString, stackTraceToSingleLineString(e));
         }
 
@@ -2248,9 +2220,9 @@
     }
 
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning a warned time of %d for user %s",
+      logger.trace("Returning a warned time of %d for user %s",
           warnedTime, userDNString);
     }
 
@@ -2281,9 +2253,9 @@
     long warnTime = getWarnedTime();
     if (warnTime == warnedTime)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Not updating warned time for user %s because " +
+        logger.trace("Not updating warned time for user %s because " +
             "the warned time is the same as the specified time.",
             userDNString);
       }
@@ -2300,9 +2272,9 @@
 
     modifications.add(new Modification(ModificationType.REPLACE, a, true));
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updated the warned time for user %s", userDNString);
+      logger.trace("Updated the warned time for user %s", userDNString);
     }
   }
 
@@ -2313,9 +2285,9 @@
    */
   public void clearWarnedTime()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing warned time for user %s", userDNString);
+      logger.trace("Clearing warned time for user %s", userDNString);
     }
 
     if (getWarnedTime() < 0)
@@ -2329,9 +2301,9 @@
     Attribute a = Attributes.empty(type);
     modifications.add(new Modification(ModificationType.REPLACE, a, true));
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Cleared the warned time for user %s", userDNString);
+      logger.trace("Cleared the warned time for user %s", userDNString);
     }
   }
 
@@ -2362,14 +2334,11 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning("Error while processing grace login times " +
+          logger.trace("Error while processing grace login times " +
                "for user %s: %s",
                        userDNString, stackTraceToSingleLineString(e));
         }
@@ -2382,9 +2351,9 @@
     }
 
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning grace login times for user %s",
+      logger.trace("Returning grace login times for user %s",
           userDNString);
     }
 
@@ -2419,9 +2388,9 @@
    */
   public void updateGraceLoginTimes()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating grace login times for user %s",
+      logger.trace("Updating grace login times for user %s",
           userDNString);
     }
 
@@ -2472,9 +2441,9 @@
       return;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating grace login times for user %s",
+      logger.trace("Updating grace login times for user %s",
           userDNString);
     }
 
@@ -2501,9 +2470,9 @@
    */
   public void clearGraceLoginTimes()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing grace login times for user %s",
+      logger.trace("Clearing grace login times for user %s",
           userDNString);
     }
 
@@ -2577,9 +2546,9 @@
                     : DirectoryServer.getPasswordStorageScheme(schemeName);
           if (scheme == null)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugWarning("User entry %s contains a password with " +
+              logger.trace("User entry %s contains a password with " +
                   "scheme %s that is not defined in the server.",
                                   userDNString, schemeName);
             }
@@ -2600,14 +2569,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning("Cannot get clear password value foruser %s: " +
+            logger.trace("Cannot get clear password value foruser %s: " +
                 "%s", userDNString, e);
           }
         }
@@ -2629,9 +2595,9 @@
          userEntry.getAttribute(passwordPolicy.getPasswordAttribute());
     if ((attrList == null) || attrList.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false because user %s does not have " +
+        logger.trace("Returning false because user %s does not have " +
             "any values for password attribute %s", userDNString,
             passwordPolicy.getPasswordAttribute().getNameOrOID());
       }
@@ -2670,9 +2636,9 @@
                      : DirectoryServer.getPasswordStorageScheme(schemeName);
           if (scheme == null)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugWarning("User entry %s contains a password with " +
+              logger.trace("User entry %s contains a password with " +
                   "scheme %s that is not defined in the server.",
                                   userDNString, schemeName);
             }
@@ -2688,9 +2654,9 @@
               ByteString.valueOf(pwComponents[1].toString()));
           if (passwordMatches)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo("Returning true for user %s because the " +
+              logger.trace("Returning true for user %s because the " +
                   "provided password matches a value encoded with scheme %s",
                   userDNString, schemeName);
             }
@@ -2700,14 +2666,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning("An error occurred while attempting to " +
+            logger.trace("An error occurred while attempting to " +
                 "process a password value for user %s: %s",
                      userDNString, stackTraceToSingleLineString(e));
           }
@@ -2716,9 +2679,9 @@
     }
 
     // If we've gotten here, then we couldn't find a match.
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning false because the provided password does " +
+      logger.trace("Returning false because the provided password does " +
           "not match any of the stored password values for user %s",
           userDNString);
     }
@@ -2816,9 +2779,9 @@
       if (!validator.passwordIsAcceptable(newPassword, currentPasswords,
           operation, userEntry, invalidReason))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("The password provided for user %s failed "
+          logger.trace("The password provided for user %s failed "
               + "validation: %s", userDNString, invalidReason.toString());
         }
         return false;
@@ -2840,9 +2803,9 @@
   {
     if (passwordPolicy.getDefaultPasswordStorageSchemes().isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Doing nothing for user %s because no " +
+        logger.trace("Doing nothing for user %s because no " +
             "deprecated storage schemes have been defined.", userDNString);
       }
 
@@ -2854,9 +2817,9 @@
     List<Attribute> attrList = userEntry.getAttribute(type);
     if ((attrList == null) || attrList.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Doing nothing for entry %s because no password " +
+        logger.trace("Doing nothing for entry %s because no password " +
             "values were found.", userDNString);
       }
 
@@ -2904,9 +2867,9 @@
                     : DirectoryServer.getPasswordStorageScheme(schemeName);
           if (scheme == null)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugWarning("Skipping password value for user %s " +
+              logger.trace("Skipping password value for user %s " +
                   "because the associated storage scheme %s is not " +
                   "configured for use.", userDNString, schemeName);
             }
@@ -2930,9 +2893,9 @@
             else if (passwordPolicy
                 .isDeprecatedPasswordStorageScheme(schemeName))
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugInfo("Marking password with scheme %s for " +
+                logger.trace("Marking password with scheme %s for " +
                     "removal from user entry %s.", schemeName, userDNString);
               }
 
@@ -2946,11 +2909,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
 
-            TRACER.debugWarning("Skipping password value for user %s because " +
+            logger.trace("Skipping password value for user %s because " +
                 "an error occurred while attempting to decode it based on " +
                 "the user password syntax: %s",
                 userDNString, stackTraceToSingleLineString(e));
@@ -2961,9 +2924,9 @@
 
     if (removedValues.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("User entry %s does not have any password values " +
+        logger.trace("User entry %s does not have any password values " +
             "encoded using deprecated schemes.", userDNString);
       }
 
@@ -2990,14 +2953,11 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning("Unable to encode password for user %s using " +
+            logger.trace("Unable to encode password for user %s using " +
                  "default scheme %s: %s",
                          userDNString, s.getStorageSchemeName(),
                          stackTraceToSingleLineString(e));
@@ -3008,9 +2968,9 @@
 
     if (updatedValues.isEmpty())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Not updating user entry %s because removing " +
+        logger.trace("Not updating user entry %s because removing " +
              "deprecated schemes would leave the user without a password.",
                      userDNString);
       }
@@ -3031,9 +2991,9 @@
       modifications.add(new Modification(ModificationType.ADD, a2, true));
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Updating user entry %s to replace password values " +
+      logger.trace("Updating user entry %s to replace password values " +
           "encoded with deprecated schemes with values encoded " +
           "with the default schemes.", userDNString);
     }
@@ -3070,9 +3030,9 @@
   {
     if (! maintainHistory())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning false because password history " +
+        logger.trace("Returning false because password history " +
             "checking is disabled.");
       }
 
@@ -3086,9 +3046,9 @@
     // passwords.  If so, then we'll consider it to be in the history.
     if (passwordMatches(password))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning true because the provided password " +
+        logger.trace("Returning true because the provided password " +
             "is currently in use.");
       }
 
@@ -3137,9 +3097,9 @@
     {
       if (historyValueMatches(password, v))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning true because the password is in " +
+          logger.trace("Returning true because the password is in " +
               "the history.");
         }
 
@@ -3149,9 +3109,9 @@
 
 
     // If we've gotten here, then the password isn't in the history.
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning false because the password isn't in the " +
+      logger.trace("Returning false because the password isn't in the " +
           "history.");
     }
 
@@ -3186,9 +3146,9 @@
           int    hashPos = histStr.indexOf('#');
           if (hashPos <= 0)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo("Found value " + histStr + " in the " +
+              logger.trace("Found value " + histStr + " in the " +
                   "history with no timestamp.  Marking it " +
                   "for removal.");
             }
@@ -3209,11 +3169,11 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
+                logger.traceException(e);
 
-                TRACER.debugInfo("Could not decode the timestamp in " +
+                logger.trace("Could not decode the timestamp in " +
                     "history value " + histStr + " -- " + e +
                     ".  Marking it for removal.");
               }
@@ -3257,9 +3217,9 @@
       int    hashPos1 = histStr.indexOf('#');
       if (hashPos1 <= 0)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning false because the password history " +
+          logger.trace("Returning false because the password history " +
               "value didn't include any hash characters.");
         }
 
@@ -3269,9 +3229,9 @@
       int hashPos2 = histStr.indexOf('#', hashPos1+1);
       if (hashPos2 < 0)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning false because the password history " +
+          logger.trace("Returning false because the password history " +
               "value only had one hash character.");
         }
 
@@ -3290,9 +3250,9 @@
         if (scheme.authPasswordMatches(password, authPWComponents[1].toString(),
                                        authPWComponents[2].toString()))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Returning true because the auth password " +
+            logger.trace("Returning true because the auth password " +
                 "history value matched.");
           }
 
@@ -3300,9 +3260,9 @@
         }
         else
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Returning false because the auth password " +
+            logger.trace("Returning false because the auth password " +
                 "history value did not match.");
           }
 
@@ -3319,9 +3279,9 @@
         if (scheme.passwordMatches(password,
             ByteString.valueOf(userPWComponents[1])))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Returning true because the user password " +
+            logger.trace("Returning true because the user password " +
                 "history value matched.");
           }
 
@@ -3329,9 +3289,9 @@
         }
         else
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Returning false because the user password " +
+            logger.trace("Returning false because the user password " +
                 "history value did not match.");
           }
 
@@ -3340,9 +3300,9 @@
       }
       else
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning false because the syntax OID " +
+          logger.trace("Returning false because the syntax OID " +
               syntaxOID + " didn't match for either the auth " +
               "or user password syntax.");
         }
@@ -3352,13 +3312,13 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Returning false because of an exception:  " +
+          logger.trace("Returning false because of an exception:  " +
                            stackTraceToSingleLineString(e));
         }
       }
@@ -3404,9 +3364,9 @@
   {
     if (! maintainHistory())
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Not doing anything because password history " +
+        logger.trace("Not doing anything because password history " +
             "maintenance is disabled.");
       }
 
@@ -3440,9 +3400,9 @@
         iterator.remove();
         numToDelete--;
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Removing history value " +
+          logger.trace("Removing history value " +
               v.getValue().toString() + " to preserve the history count.");
         }
       }
@@ -3474,9 +3434,9 @@
           removeValues.add(v);
           iterator.remove();
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Removing history value " +
+            logger.trace("Removing history value " +
                 v.getValue().toString() +
                 " to preserve the history duration.");
           }
@@ -3510,9 +3470,9 @@
                         "#" + encodedPassword;
     Attribute newHistAttr = Attributes.create(historyType, newHistStr);
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Going to add history value " + newHistStr);
+      logger.trace("Going to add history value " + newHistStr);
     }
 
 
@@ -3564,9 +3524,9 @@
    */
   public void clearPasswordHistory()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Clearing password history for user %s", userDNString);
+      logger.trace("Clearing password history for user %s", userDNString);
     }
 
     AttributeType type = DirectoryServer.getAttributeType(
@@ -3592,9 +3552,9 @@
     PasswordGenerator<?> generator = passwordPolicy.getPasswordGenerator();
     if (generator == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Unable to generate a new password for user " +
+        logger.trace("Unable to generate a new password for user " +
             "%s because no password generator has been defined in the " +
             "associated password policy.", userDNString);
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java b/opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java
index 75d2a3f..f7a7ea6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java
@@ -28,8 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -37,11 +35,10 @@
 
 import org.opends.server.controls.EntryChangeNotificationControl;
 import org.opends.server.controls.PersistentSearchChangeType;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.Control;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.ResultCode;
@@ -102,11 +99,7 @@
      */
     void persistentSearchCancelled(PersistentSearch psearch);
   }
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -133,10 +126,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -306,7 +296,7 @@
     // Make sure that the entry matches the target filter.
     try
     {
-      TRACER.debugInfo(this + " " + entry + " +filter="
+      logger.trace(this + " " + entry + " +filter="
           + filter.matchesEntry(entry));
 
       if (!filter.matchesEntry(entry))
@@ -316,10 +306,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // FIXME -- Do we need to do anything here?
 
@@ -347,10 +334,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       cancel();
 
@@ -360,10 +344,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
       }
     }
   }
@@ -430,10 +411,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // FIXME -- Do we need to do anything here?
 
@@ -461,10 +439,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       cancel();
 
@@ -474,10 +449,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
       }
     }
   }
@@ -563,10 +535,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // FIXME -- Do we need to do anything here?
 
@@ -594,10 +563,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       cancel();
 
@@ -607,10 +573,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
       }
     }
   }
@@ -701,10 +664,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // FIXME -- Do we need to do anything here?
 
@@ -732,10 +692,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       cancel();
 
@@ -745,10 +702,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
index ed57fa7..292d207 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
@@ -47,14 +47,13 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.plugin.*;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.*;
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.PluginMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -71,10 +70,7 @@
                   ConfigurationDeleteListener<PluginCfg>,
                   ConfigurationChangeListener<PluginCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Arrays for holding the plugins of each type.
   private DirectoryServerPlugin[] startupPlugins;
@@ -509,10 +505,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
@@ -1462,10 +1455,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_STARTUP_PLUGIN_EXCEPTION.get(
                 String.valueOf(p.getPluginEntryDN()),
@@ -1520,10 +1510,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_SHUTDOWN_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -1556,10 +1543,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_CONNECT_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -1630,10 +1614,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage msg = ERR_PLUGIN_POST_DISCONNECT_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -1693,10 +1674,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_LDIF_IMPORT_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -1793,10 +1771,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_LDIF_EXPORT_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -1889,10 +1864,7 @@
   private PluginResult.PreParse handlePreParseException(
       Exception e, PreParseOperation operation, DirectoryServerPlugin plugin)
   {
-    if (debugEnabled())
-    {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-    }
+    logger.traceException(e);
 
     LocalizableMessage message =
         ERR_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION.get(operation.getOperationType()
@@ -2691,10 +2663,7 @@
       int i, DirectoryServerPlugin[] plugins, PreOperationOperation operation,
       DirectoryServerPlugin plugin)
   {
-    if (debugEnabled())
-    {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-    }
+    logger.traceException(e);
 
     LocalizableMessage message =
         ERR_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION.get(operation
@@ -3018,10 +2987,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(abandonOperation.getOperationType().getOperationName(),
@@ -3106,10 +3072,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(addOperation.getOperationType().getOperationName(),
@@ -3192,10 +3155,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(bindOperation.getOperationType().getOperationName(),
@@ -3279,10 +3239,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(compareOperation.getOperationType().getOperationName(),
@@ -3367,10 +3324,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(deleteOperation.getOperationType().getOperationName(),
@@ -3455,10 +3409,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(extendedOperation.getOperationType().getOperationName(),
@@ -3543,10 +3494,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(modifyOperation.getOperationType().getOperationName(),
@@ -3630,10 +3578,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(modifyDNOperation.getOperationType().getOperationName(),
@@ -3718,10 +3663,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(searchOperation.getOperationType().getOperationName(),
@@ -3806,10 +3748,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION.
             get(unbindOperation.getOperationType().getOperationName(),
@@ -3885,10 +3824,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(addOperation.getOperationType().getOperationName(),
@@ -3952,10 +3888,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(bindOperation.getOperationType().getOperationName(),
@@ -4020,10 +3953,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(compareOperation.getOperationType().getOperationName(),
@@ -4089,10 +4019,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(deleteOperation.getOperationType().getOperationName(),
@@ -4157,10 +4084,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(extendedOperation.getOperationType().getOperationName(),
@@ -4226,10 +4150,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(modifyOperation.getOperationType().getOperationName(),
@@ -4295,10 +4216,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(modifyDNOperation.getOperationType().getOperationName(),
@@ -4364,10 +4282,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION.
             get(searchOperation.getOperationType().getOperationName(),
@@ -4423,10 +4338,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_SYNCHRONIZATION_PLUGIN_EXCEPTION.
             get(addOperation.getOperationType().getOperationName(),
@@ -4458,10 +4370,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_SYNCHRONIZATION_PLUGIN_EXCEPTION.
             get(deleteOperation.getOperationType().getOperationName(),
@@ -4494,10 +4403,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_SYNCHRONIZATION_PLUGIN_EXCEPTION.
             get(modifyOperation.getOperationType().getOperationName(),
@@ -4530,10 +4436,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_POST_SYNCHRONIZATION_PLUGIN_EXCEPTION.
             get(modifyDNOperation.getOperationType().getOperationName(),
@@ -4578,10 +4481,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_SEARCH_ENTRY_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -4656,10 +4556,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_SEARCH_REFERENCE_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
@@ -4740,10 +4637,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_PLUGIN_SUBORDINATE_MODIFY_DN_PLUGIN_EXCEPTION.get(
@@ -4816,10 +4710,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_PLUGIN_SUBORDINATE_DELETE_PLUGIN_EXCEPTION.get(
@@ -4887,10 +4778,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PLUGIN_INTERMEDIATE_RESPONSE_PLUGIN_EXCEPTION.
             get(String.valueOf(p.getPluginEntryDN()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SchemaConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SchemaConfigManager.java
index 59dcdf1..c48cf2b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SchemaConfigManager.java
@@ -35,7 +35,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.*;
 import org.opends.server.types.*;
 import org.opends.server.util.LDIFReader;
@@ -44,7 +44,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -60,10 +59,7 @@
  */
 public class SchemaConfigManager
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The schema that has been parsed from the server configuration. */
   private Schema schema;
@@ -262,19 +258,13 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       throw ie;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_SCHEMA_CANNOT_LIST_FILES.get(
           schemaInstanceDirPath, getExceptionMessage(e));
@@ -376,10 +366,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_OPEN_FILE.get(
               schemaFile, schemaDirPath, getExceptionMessage(e));
@@ -411,10 +398,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_READ_LDIF_ENTRY.get(
               schemaFile, schemaDirPath, getExceptionMessage(e));
@@ -444,10 +428,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = WARN_CONFIG_SCHEMA_UNPARSEABLE_EXTRA_DATA_IN_FILE.get(
           schemaFile, schemaDirPath, getExceptionMessage(e));
@@ -511,10 +492,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       ldapSyntax = new LDAPSyntaxDescriptionSyntax();
       ldapSyntax.initializeSyntax(null);
@@ -549,10 +527,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       attrTypeSyntax = new AttributeTypeSyntax();
       attrTypeSyntax.initializeSyntax(null);
@@ -587,10 +562,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       ocSyntax = new ObjectClassSyntax();
       ocSyntax.initializeSyntax(null);
@@ -625,10 +597,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       nfSyntax = new NameFormSyntax();
       nfSyntax.initializeSyntax(null);
@@ -663,10 +632,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       dcrSyntax = new DITContentRuleSyntax();
       dcrSyntax.initializeSyntax(null);
@@ -702,10 +668,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       dsrSyntax = new DITStructureRuleSyntax();
       dsrSyntax.initializeSyntax(null);
@@ -741,10 +704,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       mruSyntax = new MatchingRuleUseSyntax();
       mruSyntax.initializeSyntax(null);
@@ -798,10 +758,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_LDAP_SYNTAX.get(
                     schemaFile,
@@ -819,10 +776,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_LDAP_SYNTAX.get(
                     schemaFile,
@@ -849,10 +803,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_LDAP_SYNTAX.get(
                 schemaFile, de.getMessageObject());
@@ -865,10 +816,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -898,10 +846,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_ATTR_TYPE.get(
                     schemaFile, de.getMessageObject());
@@ -918,10 +863,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_ATTR_TYPE.get(
                     schemaFile, v.getValue().toString() + ":  " +
@@ -946,10 +888,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_ATTR_TYPE.get(
                 schemaFile, de.getMessageObject());
@@ -962,10 +901,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -995,10 +931,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_OC.get(
                     schemaFile,
@@ -1016,10 +949,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_OC.get(
                     schemaFile,
@@ -1045,10 +975,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_OC.get(
                 schemaFile, de.getMessageObject());
@@ -1061,10 +988,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -1093,10 +1017,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM.get(
                     schemaFile, de.getMessageObject());
@@ -1112,10 +1033,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM.get(
                     schemaFile,  v.getValue().toString() + ":  " +
@@ -1141,10 +1059,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_NAME_FORM.get(
                 schemaFile, de.getMessageObject());
@@ -1157,10 +1072,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -1190,10 +1102,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_DCR.get(
                     schemaFile, de.getMessageObject());
@@ -1210,10 +1119,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_DCR.get(
                     schemaFile,v.getValue().toString() + ":  " +
@@ -1239,10 +1145,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_DCR.get(
                 schemaFile, de.getMessageObject());
@@ -1255,10 +1158,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -1288,10 +1188,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_DSR.get(
                     schemaFile, de.getMessageObject());
@@ -1308,10 +1205,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_DSR.get(
                     schemaFile, v.getValue().toString() + ":  " +
@@ -1337,10 +1231,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_DSR.get(
                 schemaFile, de.getMessageObject());
@@ -1353,10 +1244,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
@@ -1386,10 +1274,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_MRU.get(
                     schemaFile, de.getMessageObject());
@@ -1406,10 +1291,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CANNOT_PARSE_MRU.get(
                     schemaFile,
@@ -1436,10 +1318,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = WARN_CONFIG_SCHEMA_CONFLICTING_MRU.get(
                 schemaFile, de.getMessageObject());
@@ -1452,10 +1331,7 @@
             catch (Exception e)
             {
               // This should never happen.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SearchOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/SearchOperationBasis.java
index def3439..37037ce 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SearchOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SearchOperationBasis.java
@@ -36,8 +36,7 @@
 import org.opends.server.controls.AccountUsableResponseControl;
 import org.opends.server.controls.MatchedValuesControl;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
@@ -49,7 +48,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -65,10 +63,7 @@
                   SearchReferenceSearchOperation,
                   SearchOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Indicates whether a search result done response has been sent to the
@@ -362,10 +357,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
@@ -510,10 +502,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResultCode(de.getResultCode());
       appendErrorMessage(de.getMessageObject());
@@ -687,10 +676,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -827,10 +813,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResponseData(de);
         return false;
@@ -917,10 +900,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResponseData(de);
         return false;
@@ -1302,10 +1282,7 @@
     }
     catch(CanceledOperationException coe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, coe);
-      }
+      logger.traceException(coe);
 
       setResultCode(ResultCode.CANCELED);
       cancelResult = new CancelResult(ResultCode.CANCELED, null);
@@ -1403,9 +1380,9 @@
     // raised long before this method is invoked.
     if (depth >= MAX_NESTED_FILTER_DEPTH)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugError("Exceeded maximum filter depth");
+        logger.trace("Exceeded maximum filter depth");
       }
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SubentryManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SubentryManager.java
index 91fd2b5..193429f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SubentryManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SubentryManager.java
@@ -43,7 +43,7 @@
 import org.opends.server.api.plugin.PluginResult.PreOperation;
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.controls.SubentriesControl;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.types.*;
@@ -63,7 +63,6 @@
             LocalBackendSearchOperation;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.config.ConfigConstants.*;
@@ -83,10 +82,7 @@
 public class SubentryManager extends InternalDirectoryServerPlugin
         implements BackendInitializationListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // A mapping between the DNs and applicable subentries.
   private HashMap<DN,List<SubEntry>> dn2SubEntry;
@@ -331,10 +327,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     for (DN baseDN : backend.getBaseDNs())
@@ -348,10 +341,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // FIXME -- Is there anything that we need to do here?
         continue;
@@ -372,10 +362,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // FIXME -- Is there anything that we need to do here?
         continue;
@@ -399,19 +386,13 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
               }
             }
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // FIXME -- Handle this.
             continue;
@@ -671,10 +652,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
               }
             }
           }
@@ -709,10 +687,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
               }
             }
           }
@@ -750,19 +725,13 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // FIXME -- Handle this.
         }
@@ -793,10 +762,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -828,10 +794,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // FIXME -- Handle this.
         }
@@ -850,10 +813,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -893,10 +853,7 @@
         catch (Exception e)
         {
           // Shouldnt happen.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         // Notify change listeners.
@@ -910,10 +867,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -953,10 +907,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           return PluginResult.PreOperation.stopProcessing(
                   de.getResultCode(), de.getMessageObject());
@@ -1008,10 +959,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             return PluginResult.PreOperation.stopProcessing(
                     de.getResultCode(), de.getMessageObject());
@@ -1059,10 +1007,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           return PluginResult.PreOperation.stopProcessing(
                   de.getResultCode(), de.getMessageObject());
@@ -1124,10 +1069,7 @@
         catch (Exception e)
         {
           // Shouldnt happen.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
         for (SubentryChangeListener changeListener :
                 changeListeners)
@@ -1139,10 +1081,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             return PluginResult.PreOperation.stopProcessing(
                     de.getResultCode(), de.getMessageObject());
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SubentryPasswordPolicy.java b/opendj3-server-dev/src/server/org/opends/server/core/SubentryPasswordPolicy.java
index cc2d2d8..cf9195e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SubentryPasswordPolicy.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SubentryPasswordPolicy.java
@@ -31,7 +31,6 @@
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.*;
@@ -42,7 +41,7 @@
 import org.opends.server.api.PasswordGenerator;
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.api.PasswordValidator;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 
 
@@ -58,10 +57,7 @@
  */
 public final class SubentryPasswordPolicy extends PasswordPolicy
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Password Policy Subentry draft attributes.
   private static final String PWD_OC_POLICY = "pwdpolicy";
@@ -142,10 +138,9 @@
     {
       // This should not happen -- The server doesn't
       // have a pwdPolicy objectclass defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER
-            .debugWarning("No %s objectclass is defined in the server schema.",
+        logger.trace("No %s objectclass is defined in the server schema.",
                 PWD_OC_POLICY);
       }
       for (String ocName : objectClasses.values())
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
index 241983b..99e2aad 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
@@ -29,8 +29,7 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ConfigMessages.*;
 
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -52,7 +51,6 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
@@ -70,10 +68,7 @@
        ConfigurationAddListener<SynchronizationProviderCfg>,
        ConfigurationDeleteListener<SynchronizationProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -197,19 +192,16 @@
         }
         catch (ConfigException e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
             messages.add(e.getMessageObject());
             resultCode = DirectoryServer.getServerErrorResultCode();
           }
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
                   String.valueOf(configuration.getJavaClass()),
@@ -304,19 +296,16 @@
       }
       catch (ConfigException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
           messages.add(e.getMessageObject());
           resultCode = DirectoryServer.getServerErrorResultCode();
         }
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
                 String.valueOf(configuration.getJavaClass()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/UnbindOperationBasis.java b/opendj3-server-dev/src/server/org/opends/server/core/UnbindOperationBasis.java
index 0ee5d63..e023167 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/UnbindOperationBasis.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/UnbindOperationBasis.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.core;
 
@@ -32,8 +32,7 @@
 import java.util.List;
 
 import org.opends.server.api.ClientConnection;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostOperationUnbindOperation;
 import org.opends.server.types.operation.PreParseUnbindOperation;
@@ -48,11 +47,7 @@
                   PreParseUnbindOperation,
                   PostOperationUnbindOperation
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new unbind operation with the provided information.
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
index 9905654..e45b78f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
@@ -43,10 +43,9 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -61,10 +60,7 @@
                   ConfigurationAddListener<VirtualAttributeCfg>,
                   ConfigurationDeleteListener<VirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * A mapping between the DNs of the config entries and the associated virtual
@@ -219,10 +215,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         LocalizableMessage message = ERR_CONFIG_VATTR_INVALID_SEARCH_FILTER.get(
                 filterString,
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
index 1857f04..e4bf148 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
@@ -31,7 +31,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
 
@@ -65,12 +64,11 @@
 import org.opends.server.core.Workflow;
 import org.opends.server.core.WorkflowImpl;
 import org.opends.server.core.WorkflowTopologyNode;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPMessage;
 import org.opends.server.types.AuthenticationType;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
@@ -302,11 +300,7 @@
 
   // A lock to protect concurrent access to the registeredNetworkGroups.
   private static Object registeredNetworkGroupsLock = new Object();
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -761,10 +755,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons
           .add(ERR_CONFIG_NETWORK_GROUP_POLICY_CANNOT_INITIALIZE.get(
@@ -1625,10 +1616,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CONFIG_NETWORK_GROUP_POLICY_CANNOT_INITIALIZE.get(String
@@ -1668,10 +1656,7 @@
         }
       }
 
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_CONFIG_NETWORK_GROUP_POLICY_CANNOT_INITIALIZE.get(String
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
index ab52457..5dae56f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
@@ -29,8 +29,6 @@
 
 
 import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
@@ -44,10 +42,9 @@
 import org.opends.server.admin.std.server.RootCfg;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.StaticUtils;
@@ -67,10 +64,7 @@
     ConfigurationDeleteListener<NetworkGroupCfg>
 
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // A mapping between the DNs of the config entries and the associated
   // network groups.
@@ -113,20 +107,14 @@
       }
       catch (InitializationException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
       }
       catch (ConfigException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
@@ -169,20 +157,14 @@
       }
       catch (InitializationException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
       }
       catch (ConfigException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         messages.add(e.getMessageObject());
         resultCode = DirectoryServer.getServerErrorResultCode();
diff --git a/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java b/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java
index d516bad..d98927b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java
@@ -63,8 +63,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.ModifyOperation;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.StaticUtils.*;
 import org.forgerock.util.Reject;
 import org.opends.server.util.SelectableCertificateKeyManager;
@@ -111,10 +110,7 @@
 public class CryptoManagerImpl
         implements ConfigurationChangeListener<CryptoManagerCfg>, CryptoManager
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Various schema element references.
   private static AttributeType attrKeyID;
@@ -269,9 +265,7 @@
              DN.valueOf("cn=Servers"));
       }
       catch (DirectoryException ex) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         throw new InitializationException(ex.getMessageObject());
       }
 
@@ -315,9 +309,7 @@
         MessageDigest.getInstance(requestedDigestAlgorithm);
       }
       catch (Exception ex) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         unacceptableReasons.add(
              ERR_CRYPTOMGR_CANNOT_GET_REQUESTED_DIGEST.get(
                   requestedDigestAlgorithm, getExceptionMessage(ex)));
@@ -347,9 +339,7 @@
                   requestedCipherTransformationKeyLengthBits);
         }
         catch (Exception ex) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
           unacceptableReasons.add(
              ERR_CRYPTOMGR_CANNOT_GET_REQUESTED_ENCRYPTION_CIPHER.get(
                      requestedCipherTransformation, getExceptionMessage(ex)));
@@ -373,9 +363,7 @@
              requestedMACAlgorithmKeyLengthBits);
       }
       catch (Exception ex) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         unacceptableReasons.add(
                 ERR_CRYPTOMGR_CANNOT_GET_REQUESTED_MAC_ENGINE.get(
                         requestedMACAlgorithm, getExceptionMessage(ex)));
@@ -421,9 +409,7 @@
                   keyID, certificate, macKey);
         }
         catch (Exception ex) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
           unacceptableReasons.add(
                   ERR_CRYPTOMGR_CANNOT_GET_PREFERRED_KEY_WRAPPING_CIPHER.get(
                           getExceptionMessage(ex)));
@@ -568,9 +554,7 @@
       }
     }
     catch (DirectoryException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
             ERR_CRYPTOMGR_FAILED_TO_RETRIEVE_INSTANCE_CERTIFICATE.get(
                     entryDN.toString(), getExceptionMessage(ex)), ex);
@@ -625,9 +609,7 @@
       md = MessageDigest.getInstance(mdAlgorithmName);
     }
     catch (NoSuchAlgorithmException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
           ERR_CRYPTOMGR_FAILED_TO_COMPUTE_INSTANCE_KEY_IDENTIFIER.get(
                   getExceptionMessage(ex)), ex);
@@ -710,9 +692,7 @@
         }
       }
     } catch (DirectoryException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_FAILED_TO_PUBLISH_INSTANCE_KEY_ENTRY.get(
                       getExceptionMessage(ex)), ex);
@@ -777,9 +757,7 @@
       }
     }
     catch (DirectoryException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
             ERR_CRYPTOMGR_FAILED_TO_RETRIEVE_ADS_TRUSTSTORE_CERTS.get(
                     instanceKeysDN.toString(),
@@ -879,9 +857,7 @@
       wrappedKeyElement = StaticUtils.bytesToHexNoSpace(wrappedKey);
     }
     catch (GeneralSecurityException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
            ERR_CRYPTOMGR_FAILED_TO_ENCODE_SYMMETRIC_KEY_ATTRIBUTE.get(
                    getExceptionMessage(ex)), ex);
@@ -942,9 +918,7 @@
               = StaticUtils.hexStringToByteArray(elements[3]);
     }
     catch (ParseException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_DECODE_SYMMETRIC_KEY_ATTRIBUTE_SYNTAX.get(
                       symmetricKeyAttribute, fieldName,
@@ -965,9 +939,7 @@
     }
     catch (IdentifiedException ex) {
       // ConfigException, DirectoryException
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
           ERR_CRYPTOMGR_DECODE_SYMMETRIC_KEY_ATTRIBUTE_NO_PRIVATE.get(
                   getExceptionMessage(ex)), ex);
@@ -982,9 +954,7 @@
       secretKey = (SecretKey)unwrapper.unwrap(wrappedKeyCipherTextElement,
               wrappedKeyAlgorithmElement, Cipher.SECRET_KEY);
     } catch(GeneralSecurityException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
             ERR_CRYPTOMGR_DECODE_SYMMETRIC_KEY_ATTRIBUTE_DECIPHER.get(
                     getExceptionMessage(ex)), ex);
@@ -1238,9 +1208,7 @@
     }
     catch (DirectoryException ex)
     {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_IMPORT_KEY_ENTRY_FAILED_OTHER.get(
                       entry.getName().toString(), ex.getMessage()), ex);
@@ -1344,9 +1312,7 @@
     }
     catch (DirectoryException ex)
     {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_IMPORT_KEY_ENTRY_FAILED_OTHER.get(
                       entry.getName().toString(), ex.getMessage()), ex);
@@ -1405,9 +1371,7 @@
         fValue = UUID.fromString(keyEntryID);
       }
       catch (IllegalArgumentException ex) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         throw new CryptoManagerException(
                 ERR_CRYPTOMGR_INVALID_KEY_IDENTIFIER_SYNTAX.get(
                         keyEntryID, getExceptionMessage(ex)), ex);
@@ -2163,9 +2127,7 @@
     }
     catch (GeneralSecurityException ex) {
       // NoSuchAlgorithmException, NoSuchPaddingException
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
            ERR_CRYPTOMGR_GET_CIPHER_INVALID_CIPHER_TRANSFORMATION.get(
                    keyEntry.getType(), getExceptionMessage(ex)), ex);
@@ -2190,9 +2152,7 @@
     }
     catch (GeneralSecurityException ex) {
       // InvalidKeyException, InvalidAlgorithmParameterException
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_GET_CIPHER_CANNOT_INITIALIZE.get(
                       getExceptionMessage(ex)), ex);
@@ -2594,9 +2554,7 @@
       mac = Mac.getInstance(keyEntry.getType());
     }
     catch (NoSuchAlgorithmException ex){
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_GET_MAC_ENGINE_INVALID_MAC_ALGORITHM.get(
                       keyEntry.getType(), getExceptionMessage(ex)),
@@ -2607,9 +2565,7 @@
       mac.init(keyEntry.getSecretKey());
     }
     catch (InvalidKeyException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
            ERR_CRYPTOMGR_GET_MAC_ENGINE_CANNOT_INITIALIZE.get(
                    getExceptionMessage(ex)), ex);
@@ -2821,9 +2777,7 @@
       }
     }
     catch (IOException ex) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
              ERR_CRYPTOMGR_GET_CIPHER_STREAM_PROLOGUE_WRITE_ERROR.get(
                      getExceptionMessage(ex)), ex);
@@ -2846,9 +2800,7 @@
     }
     catch (Exception ex) {
       // IndexOutOfBoundsException, ArrayStoreException, ...
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
               ERR_CRYPTOMGR_DECRYPT_FAILED_TO_READ_PROLOGUE_VERSION.get(
                       ex.getMessage()), ex);
@@ -2873,9 +2825,7 @@
     }
     catch (Exception ex) {
       // IndexOutOfBoundsException, ArrayStoreException, ...
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new CryptoManagerException(
            ERR_CRYPTOMGR_DECRYPT_FAILED_TO_READ_KEY_IDENTIFIER.get(
                    ex.getMessage()), ex);
@@ -2896,9 +2846,7 @@
       }
       catch (Exception ex) {
         // IndexOutOfBoundsException, ArrayStoreException, ...
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         throw new CryptoManagerException(
                ERR_CRYPTOMGR_DECRYPT_FAILED_TO_READ_IV.get(), ex);
       }
@@ -3062,10 +3010,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
            ERR_CRYPTOMGR_SSL_CONTEXT_CANNOT_INITIALIZE.get(
diff --git a/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerSync.java b/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerSync.java
index 2d5d3e8..3ea4cbd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerSync.java
+++ b/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerSync.java
@@ -30,9 +30,8 @@
 import org.opends.server.api.Backend;
 import org.opends.server.api.BackendInitializationListener;
 import org.opends.server.api.ChangeNotificationListener;
-import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostResponseAddOperation;
@@ -56,7 +55,6 @@
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.AddOperation;
 import static org.opends.messages.CoreMessages.*;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.admin.ads.ADSContext;
 
 import java.util.LinkedHashSet;
@@ -76,7 +74,7 @@
   /**
    * The debug log tracer for this object.
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -229,10 +227,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_TRUSTSTORESYNC_EXCEPTION.get(
              stackTraceToSingleLineString(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
index aa7b614..5c096e4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
@@ -35,8 +35,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ExtendedOperation;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.asn1.ASN1Reader;
@@ -58,10 +57,7 @@
      extends ExtendedOperationHandler<
                   GetSymmetricKeyExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The BER type value for the symmetric key element of the operation value.
@@ -135,9 +131,9 @@
     }
     catch (ASN1Exception ae)
     {
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
+        logger.traceException(ae);
       }
 
       LocalizableMessage message = ERR_GET_SYMMETRIC_KEY_ASN1_DECODE_EXCEPTION.get(
@@ -147,9 +143,9 @@
     }
     catch (Exception e)
     {
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
       }
 
       operation.setResultCode(ResultCode.PROTOCOL_ERROR);
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/AESPasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/AESPasswordStorageScheme.java
index ac55f30..9a1ed66 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/AESPasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/AESPasswordStorageScheme.java
@@ -33,7 +33,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -43,7 +43,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -57,10 +56,7 @@
 public class AESPasswordStorageScheme
        extends PasswordStorageScheme<AESPasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -125,10 +121,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_AES,
                                                   getExceptionMessage(e));
@@ -167,10 +160,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_AES,
                                                   getExceptionMessage(e));
@@ -204,10 +194,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -241,10 +228,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_DECRYPT.get(STORAGE_SCHEME_NAME_AES,
                                                   getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
index 4e47782..66b85ed 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
@@ -32,7 +32,7 @@
 import org.opends.server.admin.std.server.Base64PasswordStorageSchemeCfg;
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -40,7 +40,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 
 
@@ -53,10 +52,7 @@
 public class Base64PasswordStorageScheme
        extends PasswordStorageScheme<Base64PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -164,10 +160,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/BlowfishPasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/BlowfishPasswordStorageScheme.java
index fbcb811..90fbee0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/BlowfishPasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/BlowfishPasswordStorageScheme.java
@@ -33,7 +33,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -43,7 +43,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -57,10 +56,7 @@
 public class BlowfishPasswordStorageScheme
        extends PasswordStorageScheme<BlowfishPasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -125,10 +121,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_BLOWFISH,
                                                   getExceptionMessage(e));
@@ -168,10 +161,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_BLOWFISH,
                                                   getExceptionMessage(e));
@@ -205,10 +195,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -242,10 +229,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_DECRYPT.get(STORAGE_SCHEME_NAME_BLOWFISH,
                                                   getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
index 528cf4b..c733ac7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
@@ -45,11 +45,10 @@
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -71,10 +70,7 @@
        implements ConfigurationChangeListener<
                        CramMD5SASLMechanismHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // An array filled with the inner pad byte.
   private byte[] iPad;
@@ -134,10 +130,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_SASLCRAMMD5_CANNOT_GET_MESSAGE_DIGEST.get(getExceptionMessage(e));
@@ -278,10 +271,7 @@
     }
     catch (ParseException pe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, pe);
-      }
+      logger.traceException(pe);
 
       bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -307,10 +297,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -352,10 +339,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -383,10 +367,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/CancelExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/extensions/CancelExtendedOperation.java
index 9557108..6df0c25 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/CancelExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/CancelExtendedOperation.java
@@ -32,13 +32,12 @@
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.ExtendedOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -52,10 +51,7 @@
 public class CancelExtendedOperation
        extends ExtendedOperationHandler<CancelExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Create an instance of this cancel extended operation.  All initialization
@@ -105,10 +101,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       operation.setResultCode(ResultCode.PROTOCOL_ERROR);
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
index 4793b98..50620a4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
@@ -62,7 +62,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.tools.LDIFModify;
 import org.opends.server.types.*;
@@ -78,7 +78,6 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -90,10 +89,7 @@
        extends ConfigHandler
        implements AlertGenerator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -237,19 +233,13 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       throw ie;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_CANNOT_VERIFY_EXISTENCE.get(
                              f.getAbsolutePath(), String.valueOf(e));
@@ -313,10 +303,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_UNABLE_TO_APPLY_STARTUP_CHANGES.get(
           changesFile.getAbsolutePath(), String.valueOf(e));
@@ -337,10 +324,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_CANNOT_OPEN_FOR_READ.get(
                              f.getAbsolutePath(), String.valueOf(e));
@@ -356,10 +340,7 @@
     }
     catch (LDIFException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
 
       close(reader);
 
@@ -369,10 +350,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       close(reader);
 
@@ -407,20 +385,14 @@
     }
     catch (InitializationException ie)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-      }
+      logger.traceException(ie);
 
       close(reader);
       throw ie;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       close(reader);
 
@@ -449,10 +421,7 @@
       }
       catch (LDIFException le)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+        logger.traceException(le);
 
         close(reader);
 
@@ -463,10 +432,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         close(reader);
 
@@ -535,10 +501,7 @@
       catch (Exception e)
       {
         // This should not happen.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         close(reader);
 
@@ -585,19 +548,13 @@
       }
       catch (InitializationException ie)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-        }
+        logger.traceException(ie);
 
         throw ie;
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_CONFIG_CANNOT_DETERMINE_SERVER_ROOT.get(ENV_VAR_INSTALL_ROOT);
@@ -670,10 +627,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_CANNOT_REGISTER_AS_PRIVATE_SUFFIX.get(
           String.valueOf(configRootEntry.getDN()), getExceptionMessage(e));
@@ -935,10 +889,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1263,10 +1214,7 @@
       }
       catch (ConfigException ce)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-        }
+        logger.traceException(ce);
 
         LocalizableMessage message = ERR_CONFIG_FILE_ADD_FAILED.
             get(String.valueOf(entryDN), String.valueOf(parentDN),
@@ -1423,10 +1371,7 @@
       }
       catch (ConfigException ce)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-        }
+        logger.traceException(ce);
 
         LocalizableMessage message = ERR_CONFIG_FILE_DELETE_FAILED.
             get(String.valueOf(entryDN), String.valueOf(parentEntry.getDN()),
@@ -1882,10 +1827,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_MANUAL_CHANGES_LOST.get(
             configFile, stackTraceToSingleLineString(e));
@@ -1909,10 +1851,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_WRITE_CANNOT_EXPORT_NEW_CONFIG.get(
           String.valueOf(tempConfig), stackTraceToSingleLineString(e));
@@ -1933,10 +1872,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_WRITE_CANNOT_RENAME_NEW_CONFIG.
           get(String.valueOf(tempConfig), String.valueOf(configFile),
@@ -1995,10 +1931,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_FILE_CANNOT_CREATE_ARCHIVE_DIR.
             get(archiveDirectory.getAbsolutePath(),
@@ -2034,10 +1967,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_CANNOT_WRITE_CONFIG_ARCHIVE.get(
           stackTraceToSingleLineString(e));
@@ -2067,10 +1997,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_CANNOT_WRITE_CONFIG_ARCHIVE.get(
           stackTraceToSingleLineString(e));
@@ -2170,10 +2097,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           logError(ERR_STARTOK_CANNOT_WRITE.get(configFile, tempFilePath,
                                                 getExceptionMessage(e)));
@@ -2182,10 +2106,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(ERR_STARTOK_CANNOT_OPEN_FOR_WRITING.get(tempFilePath,
                       getExceptionMessage(e)));
@@ -2198,10 +2119,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_STARTOK_CANNOT_OPEN_FOR_READING.get(configFile,
                                                        getExceptionMessage(e)));
@@ -2224,10 +2142,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     File startOKFile = new File(startOKFilePath);
@@ -2240,10 +2155,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
 
@@ -2253,10 +2165,7 @@
       tempFile.renameTo(startOKFile);
     } catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_STARTOK_CANNOT_RENAME.get(tempFilePath, startOKFilePath,
                                              getExceptionMessage(e)));
@@ -2274,10 +2183,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -2350,10 +2256,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_LDIF_WRITE_ERROR.get(String.valueOf(e));
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -2366,10 +2269,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_CLOSE_ERROR.get(String.valueOf(e));
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -2401,10 +2301,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_FILE_WRITE_ERROR.get(
           configEntry.getDN().toString(), String.valueOf(e));
@@ -2520,10 +2417,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_BACKUP_CANNOT_GET_MAC.get(
               macKeyID, stackTraceToSingleLineString(e));
@@ -2544,10 +2438,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_CONFIG_BACKUP_CANNOT_GET_DIGEST.get(
               digestAlgorithm, stackTraceToSingleLineString(e));
@@ -2596,10 +2487,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_BACKUP_CANNOT_CREATE_ARCHIVE_FILE.
           get(String.valueOf(filename), backupDirectory.getPath(),
@@ -2620,10 +2508,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_BACKUP_CANNOT_GET_CIPHER.get(
             stackTraceToSingleLineString(e));
@@ -2663,10 +2548,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_CONFIG_BACKUP_CANNOT_DETERMINE_CONFIG_FILE_LOCATION.
           get(getExceptionMessage(e));
@@ -2714,10 +2596,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       StaticUtils.close(inputStream, zipStream);
 
@@ -2772,10 +2651,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       StaticUtils.close(inputStream, zipStream);
 
@@ -2794,10 +2670,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_CONFIG_BACKUP_CANNOT_CLOSE_ZIP_STREAM.get(
           filename, backupDirectory.getPath(), getExceptionMessage(e));
@@ -2837,10 +2710,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       message = ERR_CONFIG_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR.get(
           backupDirectory.getDescriptorPath(), stackTraceToSingleLineString(e));
@@ -3499,10 +3369,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java
index ec282cf..86165b5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java
@@ -41,17 +41,14 @@
 import org.opends.server.api.EntryCache;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class defines the default entry cache which acts as an arbiter for
  * every entry cache implementation configured and installed within the
@@ -65,10 +62,7 @@
        implements ConfigurationChangeListener<EntryCacheCfg>,
        BackendInitializationListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   // The entry cache order array reflects all currently configured and
@@ -395,9 +389,7 @@
         null
         );
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return attrs;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
index f8f64bd..91d485d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
@@ -45,8 +45,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import static org.opends.server.util.StaticUtils.*;
@@ -61,10 +60,7 @@
        extends PasswordValidator<DictionaryPasswordValidatorCfg>
        implements ConfigurationChangeListener<DictionaryPasswordValidatorCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The current configuration for this password validator.
   private DictionaryPasswordValidatorCfg currentConfig;
@@ -223,10 +219,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_DICTIONARY_VALIDATOR_CANNOT_READ_FILE.get(
           configuration.getDictionaryFile(), String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
index 861f09f..0d5f478 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
@@ -31,8 +31,11 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+
 import javax.security.sasl.*;
+
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.meta.DigestMD5SASLMechanismHandlerCfgDefn.*;
 import org.opends.server.admin.std.server.DigestMD5SASLMechanismHandlerCfg;
@@ -43,13 +46,11 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.*;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
-import static org.opends.server.loggers.debug.DebugLogger.*;
+
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -64,8 +65,7 @@
       extends SASLMechanismHandler<DigestMD5SASLMechanismHandlerCfg>
       implements ConfigurationChangeListener<DigestMD5SASLMechanismHandlerCfg> {
 
-  //The tracer object for the debug logger.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The current configuration for this SASL mechanism handler.
   private DigestMD5SASLMechanismHandlerCfg configuration;
@@ -126,9 +126,7 @@
          DirectoryServer.registerSASLMechanismHandler(SASL_MECHANISM_DIGEST_MD5,
                   this);
       } catch (UnknownHostException unhe) {
-          if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, unhe);
-          }
+          logger.traceException(unhe);
           LocalizableMessage message = ERR_SASL_CANNOT_GET_SERVER_FQDN.get(
                   String.valueOf(configEntryDN), getExceptionMessage(unhe));
           throw new InitializationException(message, unhe);
@@ -166,9 +164,7 @@
             saslContext = SASLContext.createSASLContext(saslProps, serverFQDN,
                             SASL_MECHANISM_DIGEST_MD5, identityMapper);
           } catch (SaslException ex) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-              }
+              logger.traceException(ex);
               LocalizableMessage msg =
                   ERR_SASL_CONTEXT_CREATE_ERROR.get(SASL_MECHANISM_DIGEST_MD5,
                                                     getExceptionMessage(ex));
@@ -259,9 +255,7 @@
           }
           this.configuration  = configuration;
       } catch (UnknownHostException unhe) {
-          if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, unhe);
-          }
+          logger.traceException(unhe);
           resultCode = ResultCode.OPERATIONS_ERROR;
           messages.add(ERR_SASL_CANNOT_GET_SERVER_FQDN.get(
                   String.valueOf(configEntryDN), getExceptionMessage(unhe)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DiskSpaceMonitor.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DiskSpaceMonitor.java
index 121300b..589b7cf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DiskSpaceMonitor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DiskSpaceMonitor.java
@@ -33,13 +33,10 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.CoreMessages.
     ERR_DISK_SPACE_MONITOR_UPDATE_FAILED;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -58,10 +55,7 @@
 public class DiskSpaceMonitor extends MonitorProvider<MonitorProviderCfg>
     implements Runnable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private volatile File directory;
   private volatile long lowThreshold;
@@ -244,9 +238,9 @@
     {
       long lastFreeSpace = directory.getUsableSpace();
 
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Free space for %s: %d, " +
+        logger.trace("Free space for %s: %d, " +
             "low threshold: %d, full threshold: %d, state: %d",
             directory.getPath(), lastFreeSpace, lowThreshold, fullThreshold,
             lastState);
@@ -256,9 +250,9 @@
       {
         if(lastState < 2)
         {
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
-            TRACER.debugInfo("State change: %d -> %d", lastState, 2);
+            logger.trace("State change: %d -> %d", lastState, 2);
           }
 
           lastState = 2;
@@ -272,9 +266,9 @@
       {
         if(lastState < 1)
         {
-          if(debugEnabled())
+          if(logger.isTraceEnabled())
           {
-            TRACER.debugInfo("State change: %d -> %d", lastState, 1);
+            logger.trace("State change: %d -> %d", lastState, 1);
           }
           lastState = 1;
           if(handler != null)
@@ -285,9 +279,9 @@
       }
       else if(lastState != 0)
       {
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugInfo("State change: %d -> %d", lastState, 0);
+          logger.trace("State change: %d -> %d", lastState, 0);
         }
         lastState = 0;
         if(handler != null)
@@ -301,7 +295,7 @@
       ErrorLogger.logError(ERR_DISK_SPACE_MONITOR_UPDATE_FAILED.get(
           directory.getPath(), e.toString()));
 
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
   }
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroup.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroup.java
index 5fa234e..e59c9e7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroup.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroup.java
@@ -39,11 +39,10 @@
 import org.opends.server.api.Group;
 import org.opends.server.config.ConfigException;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.AttributeValue;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryConfig;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
@@ -57,7 +56,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -73,10 +71,7 @@
 public class DynamicGroup
        extends Group<DynamicGroupImplementationCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN of the entry that holds the definition for this group.
   private DN groupEntryDN;
@@ -162,10 +157,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = ERR_DYNAMICGROUP_CANNOT_DECODE_MEMBERURL.
                 get(v.getValue().toString(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
index 71aed76..1fcce5b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
@@ -32,10 +32,9 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -45,10 +44,7 @@
 public class EntryDNVirtualAttributeProvider
        extends VirtualAttributeProvider<EntryDNVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this entryDN virtual attribute provider.
@@ -101,10 +97,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -280,10 +273,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -321,10 +311,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
         break;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
index 93b55a1..01eb8cf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
@@ -35,11 +35,10 @@
 import org.opends.server.admin.std.server.EntryUUIDVirtualAttributeCfg;
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -53,10 +52,7 @@
 public class EntryUUIDVirtualAttributeProvider
        extends VirtualAttributeProvider<EntryUUIDVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this entryUUID virtual attribute provider.
@@ -114,10 +110,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
index 7299f47..8fbbf70 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
@@ -40,13 +40,12 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPClientConnection;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -63,10 +62,7 @@
        implements ConfigurationChangeListener<
                        ExternalSASLMechanismHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The attribute type that should hold the certificates to use for the
   // validation.
@@ -201,10 +197,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       bindOperation.setResponseData(de);
       return;
@@ -277,10 +270,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -325,10 +315,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
index 7bf252c..e1849ad 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
@@ -45,10 +45,10 @@
 import org.opends.server.api.EntryCache;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.CacheEntry;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
@@ -56,10 +56,8 @@
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.Attribute;
 import org.opends.server.util.ServerConstants;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
 
 
@@ -93,10 +91,7 @@
        extends EntryCache <FIFOEntryCacheCfg>
        implements ConfigurationChangeListener<FIFOEntryCacheCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The reference to the Java runtime used to determine the amount of memory
@@ -207,9 +202,7 @@
         dnMap.clear();
       } catch (Exception e) {
         // This should never happen.
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     } finally {
       cacheWriteLock.unlock();
@@ -331,10 +324,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return;
     }
@@ -428,10 +418,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     finally
     {
@@ -462,10 +449,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We can't rule out the possibility of a conflict, so return false.
       return false;
@@ -552,10 +536,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We can't be sure there wasn't a conflict, so return false.
       return false;
@@ -615,10 +596,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This shouldn't happen, but there's not much that we can do if it does.
     }
@@ -653,10 +631,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This shouldn't happen, but there's not much that we can do if it does.
     }
@@ -715,10 +690,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This shouldn't happen, but there's not much that we can do if it does.
     }
@@ -758,10 +730,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This shouldn't happen, but there's not much that we can do if it does.
     }
@@ -887,10 +856,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This shouldn't happen, but there's not much that we can do if it does.
     }
@@ -1063,9 +1029,7 @@
            new Long(maxEntries) : new Long(0))
         );
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return attrs;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
index 3d251a3..01c7c8b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
@@ -52,9 +52,7 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -69,10 +67,7 @@
        extends KeyManagerProvider<FileBasedKeyManagerProviderCfg>
        implements ConfigurationChangeListener<FileBasedKeyManagerProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -129,10 +124,7 @@
         throw new InitializationException(message);
       }
     } catch (SecurityException e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(
           String.valueOf(configEntryDN), getExceptionMessage(e));
@@ -146,10 +138,7 @@
         KeyStore.getInstance(configuration.getKeyStoreType());
         keyStoreType = configuration.getKeyStoreType();
       } catch (KeyStoreException kse) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-        }
+        logger.traceException(kse);
 
         LocalizableMessage message = ERR_FILE_KEYMANAGER_INVALID_TYPE.
             get(String.valueOf(configuration.getKeyStoreType()),
@@ -269,10 +258,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FILE_KEYMANAGER_CANNOT_LOAD.get(
           keyStoreFile, getExceptionMessage(e));
@@ -291,10 +277,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FILE_KEYMANAGER_CANNOT_CREATE_FACTORY.get(
           keyStoreFile, getExceptionMessage(e));
@@ -344,10 +327,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(
               String.valueOf(cfgEntryDN),
@@ -364,10 +344,7 @@
       }
       catch (KeyStoreException kse)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-        }
+        logger.traceException(kse);
 
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_INVALID_TYPE.get(
                 String.valueOf(configuration.getKeyStoreType()),
@@ -504,10 +481,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       resultCode = DirectoryServer.getServerErrorResultCode();
 
@@ -527,10 +501,7 @@
       }
       catch (KeyStoreException kse)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-        }
+        logger.traceException(kse);
 
         resultCode = DirectoryServer.getServerErrorResultCode();
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
index 6fa9eb8..df402c4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
@@ -54,9 +54,7 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.ExpirationCheckTrustManager;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -71,10 +69,7 @@
        extends TrustManagerProvider<FileBasedTrustManagerProviderCfg>
        implements ConfigurationChangeListener<FileBasedTrustManagerProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -148,10 +143,7 @@
     }
     catch (KeyStoreException kse)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-      }
+      logger.traceException(kse);
 
       LocalizableMessage message = ERR_FILE_TRUSTMANAGER_INVALID_TYPE.
           get(String.valueOf(trustStoreType), String.valueOf(configEntryDN),
@@ -299,10 +291,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FILE_TRUSTMANAGER_CANNOT_LOAD.get(
           trustStoreFile, getExceptionMessage(e));
@@ -328,10 +317,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FILE_TRUSTMANAGER_CANNOT_CREATE_FACTORY.get(
           trustStoreFile, getExceptionMessage(e));
@@ -383,10 +369,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       unacceptableReasons.add(ERR_FILE_TRUSTMANAGER_CANNOT_DETERMINE_FILE.get(
               String.valueOf(cfgEntryDN),
@@ -405,10 +388,7 @@
       }
       catch (KeyStoreException kse)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-        }
+        logger.traceException(kse);
 
         LocalizableMessage message = ERR_FILE_TRUSTMANAGER_INVALID_TYPE.get(
                 String.valueOf(storeType),
@@ -545,10 +525,7 @@
     }
     catch (KeyStoreException kse)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, kse);
-      }
+      logger.traceException(kse);
 
       messages.add(ERR_FILE_TRUSTMANAGER_INVALID_TYPE.get(
               String.valueOf(newTrustStoreType),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FileSystemEntryCache.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FileSystemEntryCache.java
index d94456d..a874831 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FileSystemEntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FileSystemEntryCache.java
@@ -68,13 +68,12 @@
 import org.opends.server.backends.jeb.ConfigurableEnvironment;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.opends.server.util.ServerConstants;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.messages.ExtensionMessages.*;
@@ -113,10 +112,7 @@
 public class FileSystemEntryCache
         extends EntryCache <FileSystemEntryCacheCfg>
         implements ConfigurationChangeListener <FileSystemEntryCacheCfg> {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Permissions for cache db environment.
   private static final FilePermission CACHE_HOME_PERMISSIONS =
@@ -267,9 +263,7 @@
     try {
       checkAndSetupCacheHome(cacheHome);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // Not having any home directory for the cache db environment is a
       // fatal error as we are unable to continue any further without it.
@@ -383,9 +377,7 @@
           logError(message);
 
         } catch (CacheIndexNotFoundException e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // Log an error message.
           logError(NOTE_FSCACHE_INDEX_NOT_FOUND.get());
@@ -393,9 +385,7 @@
           // Clear the entry cache.
           clear();
         } catch (CacheIndexImpairedException e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // Log an error message.
           logError(ERR_FSCACHE_INDEX_IMPAIRED.get());
@@ -403,9 +393,7 @@
           // Clear the entry cache.
           clear();
         } catch (Exception e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // Log an error message.
           logError(ERR_FSCACHE_CANNOT_LOAD_PERSISTENT_DATA.get());
@@ -418,9 +406,7 @@
       // If we got here it means we have failed to have a proper backend
       // for this entry cache and there is absolutely no point going any
       // farther from here.
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_FSCACHE_CANNOT_INITIALIZE.get(
@@ -469,9 +455,7 @@
             throw new Exception();
           }
         } catch (Exception e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // Log an error message.
           logError(ERR_FSCACHE_CANNOT_STORE_PERSISTENT_DATA.get());
@@ -507,9 +491,7 @@
           entryCacheEnv.close();
         }
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // That is ok, JE verification and repair on startup should take care of
         // this so if there are any unrecoverable errors during next startup
@@ -624,9 +606,7 @@
       putEntryToDB(entry.getName().toNormalizedString(),
         backend, entryID, buffer);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -654,9 +634,7 @@
       return putEntryToDB(entry.getName().toNormalizedString(),
         backend, entryID, buffer);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       // We can't rule out the possibility of a conflict, so return false.
       return false;
     }
@@ -695,9 +673,7 @@
       entryCacheDB.delete(null,
         new DatabaseEntry(entryDN.toNormalizedString().getBytes("UTF-8")));
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     } finally {
       cacheWriteLock.unlock();
     }
@@ -736,9 +712,7 @@
               classCatalog, FileSystemEntryCacheIndex.class);
         }
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     } finally {
       cacheWriteLock.unlock();
@@ -789,9 +763,7 @@
         // This backend is empty now, remove it from the backend map.
         entryCacheIndex.backendMap.remove(backend.getBackendID());
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     } finally {
       cacheWriteLock.unlock();
@@ -823,10 +795,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       // This shouldn't happen, but there's not much that we can do if it does.
     }
     finally
@@ -874,9 +843,7 @@
               new DatabaseEntry(
               entryDN.toNormalizedString().getBytes("UTF-8")));
           } catch (Exception e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
 
@@ -931,9 +898,7 @@
         // Free some main memory/space.
         entryCacheEnv.cleanLog();
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1092,9 +1057,7 @@
           newJECachePercent :
           EnvironmentConfig.DEFAULT.getCachePercent()));
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         errorHandler.reportError(
           ERR_FSCACHE_CANNOT_SET_JE_MEMORY_PCT.get(),
           false,
@@ -1104,9 +1067,7 @@
       try {
         newMutableEnvConfig.setCacheSize(newJECacheSize);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         errorHandler.reportError(
           ERR_FSCACHE_CANNOT_SET_JE_MEMORY_SIZE.get(),
           false,
@@ -1118,9 +1079,7 @@
         newEnvConfig = ConfigurableEnvironment.setJEProperties(
           newEnvConfig, newJEProperties, configAttrMap);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         errorHandler.reportError(
           ERR_FSCACHE_CANNOT_SET_JE_PROPERTIES.get(e.getMessage()),
           false, DirectoryServer.getServerErrorResultCode());
@@ -1166,8 +1125,8 @@
                     jePropertyName);
                   errorHandler.reportError(message, true, ResultCode.SUCCESS,
                     true);
-                  if (debugEnabled()) {
-                    TRACER.debugInfo("The change to the following property " +
+                  if (logger.isTraceEnabled()) {
+                    logger.trace("The change to the following property " +
                       "will take effect when the component is restarted: " +
                       jePropertyName);
                   }
@@ -1210,9 +1169,7 @@
             entryCacheEnv.setMutableConfig(newMutableEnvConfig);
             entryCacheEnv.evictMemory();
         } catch (Exception e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             errorHandler.reportError(
               ERR_FSCACHE_CANNOT_SET_JE_MEMORY_PCT.get(),
               false,
@@ -1226,9 +1183,7 @@
             entryCacheEnv.setMutableConfig(newMutableEnvConfig);
             entryCacheEnv.evictMemory();
         } catch (Exception e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             errorHandler.reportError(
               ERR_FSCACHE_CANNOT_SET_JE_MEMORY_SIZE.get(),
               false,
@@ -1243,9 +1198,7 @@
           // properties that are mutable at runtime.
           entryCacheEnv.setMutableConfig(newEnvConfig);
         } catch (Exception e) {
-          if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+          logger.traceException(e);
             errorHandler.reportError(
               ERR_FSCACHE_CANNOT_SET_JE_PROPERTIES.get(e.getMessage()),
               false,
@@ -1295,9 +1248,7 @@
            new Long(maxEntries.longValue()) : new Long(0))
         );
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return attrs;
@@ -1340,9 +1291,7 @@
         throw new Exception();
       }
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // Log an error message.
       logError(ERR_FSCACHE_CANNOT_RETRIEVE_ENTRY.get());
@@ -1427,9 +1376,7 @@
       // the entry due to memory constraints.
       return true;
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // Log an error message.
       logError(
@@ -1604,9 +1551,7 @@
         // Remove the the eldest entry from the database.
         entryCacheDB.delete(null, cacheEntryKey);
       } catch (Exception e) {
-        if (debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       } finally {
         cacheWriteLock.unlock();
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
index 6e698dd..737f59f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
@@ -43,9 +43,7 @@
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.forgerock.util.Reject.*;
 
@@ -59,10 +57,7 @@
 public class FilteredStaticGroupMemberList
        extends MemberList
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -161,10 +156,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         LocalizableMessage message = ERR_STATICMEMBERS_CANNOT_DECODE_DN.
             get(String.valueOf(nextDN), String.valueOf(groupDN),
@@ -245,10 +237,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         LocalizableMessage message = ERR_STATICMEMBERS_CANNOT_GET_ENTRY.
             get(String.valueOf(nextDN), String.valueOf(groupDN),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
index a9dbe66..38fcfe6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -43,9 +43,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.types.*;
@@ -65,10 +63,7 @@
        implements ConfigurationChangeListener<
                        FingerprintCertificateMapperCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -191,10 +186,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_FCM_PEER_CERT_NOT_X509.get(
           String.valueOf(certificateChain[0].getType()));
@@ -213,10 +205,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       String peerSubject = peerCertificate.getSubjectX500Principal().getName(
                                 X500Principal.RFC2253);
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
index a3d4d56..aa950ee 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
@@ -31,7 +31,6 @@
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.config.ConfigConstants.CONFIG_DIR_NAME;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -67,10 +66,9 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
@@ -84,9 +82,7 @@
     SASLMechanismHandler<GSSAPISASLMechanismHandlerCfg> implements
     ConfigurationChangeListener<GSSAPISASLMechanismHandlerCfg>, CallbackHandler
 {
-
-  // The tracer object for the debug logger.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN of the configuration entry for this SASL mechanism handler.
   private DN configEntryDN;
@@ -140,20 +136,14 @@
     }
     catch (UnknownHostException unhe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, unhe);
-      }
+      logger.traceException(unhe);
       LocalizableMessage message = ERR_SASL_CANNOT_GET_SERVER_FQDN.get(String
           .valueOf(configEntryDN), getExceptionMessage(unhe));
       throw new InitializationException(message, unhe);
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
       LocalizableMessage message = ERR_SASLGSSAPI_CANNOT_CREATE_JAAS_CONFIG
           .get(getExceptionMessage(ioe));
       throw new InitializationException(message, ioe);
@@ -280,10 +270,7 @@
     }
     catch (LoginException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -396,8 +383,8 @@
         saslContext = SASLContext.createSASLContext(saslProps, serverFQDN,
                                   SASL_MECHANISM_GSSAPI, identityMapper);
       } catch (SaslException ex) {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+        if (logger.isTraceEnabled())
+          logger.traceException(ex);
         LocalizableMessage msg;
         GSSException gex = (GSSException) ex.getCause();
         if(gex != null) {
@@ -419,8 +406,8 @@
     }
     catch (LoginException ex)
     {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      if (logger.isTraceEnabled())
+        logger.traceException(ex);
       LocalizableMessage message = ERR_SASLGSSAPI_CANNOT_CREATE_LOGIN_CONTEXT
             .get(getExceptionMessage(ex));
       // Log a configuration error.
@@ -504,8 +491,8 @@
     }
     catch (UnknownHostException ex)
     {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      if (logger.isTraceEnabled())
+        logger.traceException(ex);
       LocalizableMessage message = ERR_SASL_CANNOT_GET_SERVER_FQDN.get(String
           .valueOf(configEntryDN), getExceptionMessage(ex));
       unacceptableReasons.add(message);
@@ -522,8 +509,8 @@
     if(!keyTabFile.exists()) {
       LocalizableMessage message = ERR_SASL_GSSAPI_KEYTAB_INVALID.get(keyTabFilePath);
       unacceptableReasons.add(message);
-      if (debugEnabled())
-        TRACER.debugError(message.toString());
+      if (logger.isTraceEnabled())
+        logger.trace(message.toString());
       isAcceptable = false;
     }
 
@@ -534,8 +521,8 @@
     {
       LocalizableMessage message = ERR_SASLGSSAPI_KDC_REALM_NOT_DEFINED.get();
       unacceptableReasons.add(message);
-      if (debugEnabled())
-        TRACER.debugError(message.toString());
+      if (logger.isTraceEnabled())
+        logger.trace(message.toString());
       isAcceptable = false;
     }
 
@@ -560,23 +547,23 @@
       this.configuration = newConfiguration;
     }
     catch (InitializationException ex) {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      if (logger.isTraceEnabled())
+        logger.traceException(ex);
       LocalizableMessage message = ex.getMessageObject();
       messages.add(message);
       clearProperties();
       resultCode = ResultCode.OTHER;
     } catch (UnknownHostException ex) {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      if (logger.isTraceEnabled())
+        logger.traceException(ex);
         LocalizableMessage message = ERR_SASL_CANNOT_GET_SERVER_FQDN.get(String
           .valueOf(configEntryDN), getExceptionMessage(ex));
       messages.add(message);
       clearProperties();
       resultCode = ResultCode.OTHER;
     } catch (IOException ex) {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+      if (logger.isTraceEnabled())
+        logger.traceException(ex);
       LocalizableMessage message = ERR_SASLGSSAPI_CANNOT_CREATE_JAAS_CONFIG
         .get(getExceptionMessage(ex));
       messages.add(message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/GetConnectionIDExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/extensions/GetConnectionIDExtendedOperation.java
index a638002..0a79f1e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/GetConnectionIDExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/GetConnectionIDExtendedOperation.java
@@ -31,7 +31,7 @@
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.ExtendedOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.asn1.ASN1Reader;
@@ -39,7 +39,6 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -50,10 +49,7 @@
        extends ExtendedOperationHandler<
                     GetConnectionIdExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Create an instance of this "Get Connection ID" extended operation.  All
@@ -107,10 +103,7 @@
     }
     catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return builder.toByteString();
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/HasSubordinatesVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/HasSubordinatesVirtualAttributeProvider.java
index d447b47..bfad3fa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/HasSubordinatesVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/HasSubordinatesVirtualAttributeProvider.java
@@ -36,11 +36,10 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class implements a virtual attribute provider that is meant to serve the
@@ -49,10 +48,7 @@
 public class HasSubordinatesVirtualAttributeProvider
        extends VirtualAttributeProvider<HasSubordinatesVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this HasSubordinates virtual attribute provider.
@@ -92,10 +88,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
     }
 
     return Collections.emptySet();
@@ -114,10 +107,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return false;
     }
@@ -140,10 +130,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
index f96b0c0..4984348 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
@@ -33,10 +33,9 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -47,10 +46,7 @@
 public class IsMemberOfVirtualAttributeProvider
        extends VirtualAttributeProvider<IsMemberOfVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this entryDN virtual attribute provider.
@@ -104,10 +100,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -134,10 +127,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -157,10 +147,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -321,10 +308,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -372,10 +356,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
         break;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java
index 2d7f7a7..e51aee0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java
@@ -58,14 +58,12 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.config.JMXMBean;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.ExtensionMessages.*;
 
@@ -83,10 +81,7 @@
                   ConfigurationChangeListener<JMXAlertHandlerCfg>, DynamicMBean,
                   DirectoryServerMBean
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -156,10 +151,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_JMX_ALERT_HANDLER_CANNOT_REGISTER.get(String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java b/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
index efc287e..d06880b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
@@ -46,8 +46,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyOperation;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.*;
@@ -62,7 +61,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -116,10 +114,7 @@
             catch (final DirectoryException e)
             {
               // Ignore this error and try the next factory.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               lastException = e;
             }
           }
@@ -163,10 +158,7 @@
           }
           catch (final DirectoryException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             handleDirectoryException(e);
           }
         }
@@ -190,10 +182,7 @@
           }
           catch (final DirectoryException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             handleDirectoryException(e);
           }
         }
@@ -231,10 +220,7 @@
             catch (final DirectoryException de)
             {
               // Ignore this error and try the next factory.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
             }
           }
           incrementNextIndex();
@@ -305,10 +291,7 @@
         }
         catch (final DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           lastException = e;
           isAvailable = false; // publishes lastException
           throw e;
@@ -393,10 +376,7 @@
           }
           catch (final DirectoryException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -934,10 +914,7 @@
         }
         catch (final IOException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         // Close all IO resources.
@@ -950,10 +927,7 @@
         }
         catch (final IOException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         try
@@ -962,10 +936,7 @@
         }
         catch (final IOException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
@@ -1438,50 +1409,35 @@
       }
       catch (final UnknownHostException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new DirectoryException(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
             ERR_LDAP_PTA_CONNECT_UNKNOWN_HOST.get(host, port,
                 String.valueOf(cfg.dn()), host), e);
       }
       catch (final ConnectException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new DirectoryException(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
             ERR_LDAP_PTA_CONNECT_ERROR.get(host, port,
                 String.valueOf(cfg.dn()), port), e);
       }
       catch (final SocketTimeoutException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new DirectoryException(ResultCode.CLIENT_SIDE_TIMEOUT,
             ERR_LDAP_PTA_CONNECT_TIMEOUT.get(host, port,
                 String.valueOf(cfg.dn())), e);
       }
       catch (final SSLException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new DirectoryException(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
             ERR_LDAP_PTA_CONNECT_SSL_ERROR.get(host, port,
                 String.valueOf(cfg.dn()), e.getMessage()), e);
       }
       catch (final Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new DirectoryException(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
             ERR_LDAP_PTA_CONNECT_OTHER_ERROR.get(host, port,
                 String.valueOf(cfg.dn()), e.getMessage()), e);
@@ -1684,9 +1640,9 @@
               // prevent the bind from succeeded since we are only updating
               // cache data. However, the performance of the server may be
               // impacted, so log a debug warning message.
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugWarning(
+                logger.trace(
                     "An error occurred while trying to update the LDAP PTA "
                         + "cached password for user %s: %s", userEntry.getName()
                         .toString(), String.valueOf(internalModify
@@ -1963,10 +1919,7 @@
                   catch (DirectoryException e)
                   {
                     // Fall-through and give up immediately.
-                    if (debugEnabled())
-                    {
-                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                    }
+                    logger.traceException(e);
                   }
 
                   break foundCachedPasswordTime;
@@ -2029,10 +1982,7 @@
         catch (DirectoryException e)
         {
           // Unable to decode the cached password, so give up.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         return false;
@@ -2271,7 +2221,7 @@
 
 
   // Debug tracer for this class.
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Attribute list for searches requesting no attributes.
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
index a87217c..dae108f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
@@ -36,7 +36,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -45,7 +45,6 @@
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -62,10 +61,7 @@
 public class MD5PasswordStorageScheme
        extends PasswordStorageScheme<MD5PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -110,10 +106,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_MD5, String.valueOf(e));
@@ -156,10 +149,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -203,10 +193,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -249,10 +236,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -271,10 +255,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
index 59f7344..afc7c8a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
@@ -47,7 +47,6 @@
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.ConditionResult;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
@@ -56,8 +55,7 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.VirtualAttributeRule;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -70,10 +68,7 @@
        extends VirtualAttributeProvider<MemberVirtualAttributeCfg>
        implements ConfigurationChangeListener<MemberVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The current configuration for this member virtual attribute.
   private MemberVirtualAttributeCfg currentConfig;
@@ -163,10 +158,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return Collections.unmodifiableSet(values);
@@ -212,10 +204,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return false;
@@ -243,10 +232,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
index cb3df37..f3a23bc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
@@ -36,11 +36,10 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class implements a virtual attribute provider that is meant to serve the
@@ -50,10 +49,7 @@
 public class NumSubordinatesVirtualAttributeProvider
     extends VirtualAttributeProvider<NumSubordinatesVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this NumSubordinates virtual attribute provider.
@@ -93,10 +89,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
     }
 
     return Collections.emptySet();
@@ -114,10 +107,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return false;
     }
@@ -138,10 +128,7 @@
     }
     catch(DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java
index 3d2343b..a67be69 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java
@@ -41,7 +41,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -49,7 +49,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.getExceptionMessage;
 
 /**
@@ -64,10 +63,7 @@
   extends PasswordStorageScheme<PBKDF2PasswordStorageSchemeCfg>
   implements ConfigurationChangeListener<PBKDF2PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -196,10 +192,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -292,10 +285,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -326,10 +316,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -394,10 +381,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -452,10 +436,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -482,10 +463,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -588,10 +566,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
           CLASS_NAME, getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
index 1cea765..53f784b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
@@ -50,9 +50,7 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 
 import static org.opends.server.util.StaticUtils.*;
@@ -68,10 +66,7 @@
     extends KeyManagerProvider<PKCS11KeyManagerProviderCfg>
     implements ConfigurationChangeListener<PKCS11KeyManagerProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -171,10 +166,7 @@
         pinStr = br.readLine();
         br.close();
       } catch (IOException ioe) {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-        }
+        logger.traceException(ioe);
 
         LocalizableMessage message = ERR_PKCS11_KEYMANAGER_PIN_FILE_CANNOT_READ.
             get(String.valueOf(fileName), String.valueOf(configEntryDN),
@@ -228,10 +220,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_PKCS11_KEYMANAGER_CANNOT_LOAD.get(getExceptionMessage(e));
@@ -250,10 +239,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PKCS11_KEYMANAGER_CANNOT_CREATE_FACTORY.get(
           getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java b/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java
index 6f64cb0..93fb007 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java
@@ -31,8 +31,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -46,11 +44,10 @@
 import org.opends.server.api.WorkQueue;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.monitors.ParallelWorkQueueMonitor;
 import org.opends.server.types.CancelRequest;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.Operation;
@@ -66,10 +63,7 @@
        extends WorkQueue<ParallelWorkQueueCfg>
        implements ConfigurationChangeListener<ParallelWorkQueueCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -174,10 +168,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_CONFIG_WORK_QUEUE_CANNOT_CREATE_MONITOR.get(
           String.valueOf(ParallelWorkQueueMonitor.class), String.valueOf(e));
@@ -214,10 +205,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(WARN_QUEUE_UNABLE_TO_CANCEL.get(
             String.valueOf(o), String.valueOf(e)));
@@ -234,10 +222,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(WARN_QUEUE_UNABLE_TO_NOTIFY_THREAD.get(
             t.getName(), String.valueOf(e)));
@@ -362,10 +347,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -423,10 +405,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
               }
             }
           }
@@ -439,10 +418,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This should not happen.  The only recourse we have is to log a message
       // and try again.
@@ -556,10 +532,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkerThread.java b/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkerThread.java
index 8192d1e..15f66da 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkerThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkerThread.java
@@ -32,14 +32,12 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.CancelRequest;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Operation;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -51,10 +49,7 @@
 public class ParallelWorkerThread
        extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Indicates whether the Directory Server is shutting down and this thread
@@ -169,13 +164,13 @@
       }
       catch (Throwable t)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Uncaught exception in worker thread while processing " +
                 "operation %s: %s", String.valueOf(operation), t);
 
-          TRACER.debugCaught(DebugLogLevel.ERROR, t);
+          logger.traceException(t);
         }
 
         try
@@ -191,13 +186,13 @@
         }
         catch (Throwable t2)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning(
+            logger.trace(
               "Exception in worker thread while trying to log a " +
                   "message about an uncaught exception %s: %s", t, t2);
 
-            TRACER.debugCaught(DebugLogLevel.ERROR, t2);
+            logger.traceException(t2);
           }
         }
 
@@ -213,10 +208,7 @@
         }
         catch (Throwable t2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, t2);
-          }
+          logger.traceException(t2);
         }
       }
     }
@@ -234,9 +226,9 @@
     }
 
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " exiting.");
+      logger.trace(getName() + " exiting.");
     }
   }
 
@@ -248,9 +240,9 @@
    */
   public void shutDown()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " being signaled to shut down.");
+      logger.trace(getName() + " being signaled to shut down.");
     }
 
     // Set a flag that indicates that the thread should stop running.
@@ -267,12 +259,12 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Caught an exception while trying to interrupt the worker " +
                 "thread waiting for work: %s", e);
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
         }
       }
     }
@@ -286,12 +278,12 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Caught an exception while trying to abandon the " +
                 "operation in progress for the worker thread: %s", e);
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordExpirationTimeVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordExpirationTimeVirtualAttributeProvider.java
index de5d1ea..02a55d2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordExpirationTimeVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordExpirationTimeVirtualAttributeProvider.java
@@ -37,11 +37,10 @@
 import org.opends.server.core.PasswordPolicyState;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.types.*;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -54,7 +53,7 @@
   /**
    * Debug tracer to log debugging information.
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default constructor.
@@ -148,9 +147,9 @@
     {
       ErrorLogger.logError(de.getMessageObject());
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugError("Failed to retrieve password " +
+        logger.trace("Failed to retrieve password " +
               "policy for user %s: %s",
               entry.getName().toString(),
               stackTraceToSingleLineString(de));
@@ -161,9 +160,9 @@
     {
       // No authentication policy: debug log this as an error since all
       // entries should have at least the default password policy.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugError("No applicable password policy for user %s", entry
+        logger.trace("No applicable password policy for user %s", entry
             .getName().toString());
       }
     }
@@ -180,9 +179,9 @@
       {
         ErrorLogger.logError(de.getMessageObject());
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Failed to retrieve password " +
+          logger.trace("Failed to retrieve password " +
                 "policy state for user %s: %s",
                 entry.getName().toString(),
                 stackTraceToSingleLineString(de));
@@ -195,9 +194,9 @@
     else
     {
       // Not a password policy, could be PTA, etc.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("Authentication policy %s found for user %s is "
+        logger.trace("Authentication policy %s found for user %s is "
             + "not a password policy", policy.getDN().toString(), entry
             .getName().toString());
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index 27e621d..82e975d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -46,7 +46,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.PasswordPolicyState;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
@@ -59,7 +59,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -110,11 +109,7 @@
     CLEAR_PWD_ATTACHMENT = PREFIX + ".CLEAR_PWD";
     ENCODED_PWD_ATTACHMENT = PREFIX + ".ENCODED_PWD";
   }
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The current configuration state. */
   private PasswordModifyExtendedOperationHandlerCfg currentConfig;
@@ -170,10 +165,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER.get(
           String.valueOf(config.dn()), getExceptionMessage(e));
       throw new InitializationException(message, e);
@@ -268,10 +260,7 @@
       }
       catch (Exception ae)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-        }
+        logger.traceException(ae);
 
         operation.setResultCode(ResultCode.PROTOCOL_ERROR);
         operation.appendErrorMessage(ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST
@@ -336,10 +325,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             operation.setResultCode(ResultCode.INVALID_DN_SYNTAX);
             operation.appendErrorMessage(
@@ -378,10 +364,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             //Encountered an exception while resolving identity.
             operation.setResultCode(de.getResultCode());
@@ -402,10 +385,7 @@
           }
           catch (DirectoryException ignored)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
-            }
+            logger.traceException(ignored);
           }
 
           if (userDN != null && !userDN.isRootDN()) {
@@ -423,10 +403,7 @@
             }
             catch (DirectoryException ignored)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
-              }
+              logger.traceException(ignored);
             }
           }
 
@@ -462,10 +439,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         operation.setResultCode(DirectoryServer.getServerErrorResultCode());
         operation.appendErrorMessage(
@@ -707,10 +681,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           operation.setResultCode(de.getResultCode());
           operation.appendErrorMessage(
@@ -826,10 +797,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           operation.setResultCode(de.getResultCode());
           operation.appendErrorMessage(
@@ -881,10 +849,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               // We couldn't decode the provided password value, so remove it
               // from the user's entry.
@@ -920,10 +885,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               // We couldn't decode the provided password value, so remove it
               // from the user's entry.
@@ -1063,7 +1025,7 @@
         }
         catch (IOException e)
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
         }
 
         operation.setResponseValue(builder.toByteString());
@@ -1185,10 +1147,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operation.setResultCode(de.getResultCode());
       operation.appendErrorMessage(de.getMessageObject());
@@ -1215,10 +1174,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -1273,10 +1229,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER.get(
               String.valueOf(config.dn()),
@@ -1333,10 +1286,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       resultCode = DirectoryServer.getServerErrorResultCode();
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
index bb104fc..e2870fe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
@@ -39,7 +39,7 @@
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
@@ -51,7 +51,6 @@
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -124,10 +123,7 @@
        extends ExtendedOperationHandler<
                     PasswordPolicyStateExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /** The enumerated value for the getPasswordPolicyDN operation. */
@@ -289,10 +285,7 @@
     catch (Exception e)
     {
       // This should never happen.
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
 
@@ -350,10 +343,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_PWPSTATE_EXTOP_DECODE_FAILURE.get(getExceptionMessage(e));
@@ -371,10 +361,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operation.setResponseData(de);
       return;
@@ -414,10 +401,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operation.setResponseData(de);
       return;
@@ -521,10 +505,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           operation.setResponseData(de);
           return;
@@ -533,10 +514,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWPSTATE_EXTOP_INVALID_OP_ENCODING.get(
           e.getLocalizedMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicySubentryVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicySubentryVirtualAttributeProvider.java
index b4a4f39..f45b1fd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicySubentryVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordPolicySubentryVirtualAttributeProvider.java
@@ -37,10 +37,9 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -52,10 +51,7 @@
         extends VirtualAttributeProvider<
         PasswordPolicySubentryVirtualAttributeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this pwdPolicySubentry
@@ -95,9 +91,9 @@
         // retrieve password policy, log this.
         ErrorLogger.logError(de.getMessageObject());
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Failed to retrieve password " +
+          logger.trace("Failed to retrieve password " +
                 "policy for user %s: %s",
                 entry.getName().toString(),
                 stackTraceToSingleLineString(de));
@@ -108,9 +104,9 @@
       {
         // No authentication policy: debug log this as an error since all
         // entries should have at least the default password policy.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("No applicable password policy for user %s", entry
+          logger.trace("No applicable password policy for user %s", entry
               .getName().toString());
         }
       }
@@ -126,9 +122,9 @@
       else
       {
         // Not a password policy, could be PTA, etc.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Authentication policy %s found for user %s is "
+          logger.trace("Authentication policy %s found for user %s is "
               + "not a password policy", policy.getDN().toString(), entry
               .getName().toString());
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
index 2dee279..4aa3205 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
@@ -30,7 +30,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -48,7 +47,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
@@ -71,10 +70,7 @@
        implements ConfigurationChangeListener<
                        PlainSASLMechanismHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The identity mapper that will be used to map ID strings to user entries.*/
   private IdentityMapper<?> identityMapper;
@@ -217,10 +213,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -262,10 +255,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -294,10 +284,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -340,10 +327,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -397,10 +381,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -446,10 +427,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
@@ -511,10 +489,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/RC4PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/RC4PasswordStorageScheme.java
index b530805..37cac31 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/RC4PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/RC4PasswordStorageScheme.java
@@ -33,7 +33,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -43,7 +43,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -56,10 +55,7 @@
 public class RC4PasswordStorageScheme
        extends PasswordStorageScheme<RC4PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -124,10 +120,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_RC4,
                                                   getExceptionMessage(e));
@@ -167,10 +160,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_RC4,
                                                   getExceptionMessage(e));
@@ -204,10 +194,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -241,10 +228,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_DECRYPT.get(STORAGE_SCHEME_NAME_RC4,
                                                   getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java b/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
index ba607a3..df6eea9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
@@ -41,11 +41,10 @@
 import org.opends.server.api.PasswordGenerator;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -59,10 +58,7 @@
        extends PasswordGenerator<RandomPasswordGeneratorCfg>
        implements ConfigurationChangeListener<RandomPasswordGeneratorCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   // The current configuration for this password validator.
@@ -140,10 +136,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS.get(getExceptionMessage(e));
@@ -191,10 +184,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_RANDOMPWGEN_INVALID_PWFORMAT.get(
               String.valueOf(formatString));
@@ -219,10 +209,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT.get(getExceptionMessage(e));
@@ -337,10 +324,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS.get(
               getExceptionMessage(e));
@@ -377,10 +361,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message = ERR_RANDOMPWGEN_INVALID_PWFORMAT.get(
                     String.valueOf(formatString));
@@ -391,10 +372,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT.get(
               getExceptionMessage(e));
@@ -472,10 +450,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS.get(
               getExceptionMessage(e)));
@@ -529,10 +504,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           messages.add(ERR_RANDOMPWGEN_INVALID_PWFORMAT.get(
                   String.valueOf(newFormatString)));
@@ -546,10 +518,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       messages.add(ERR_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT.get(
               getExceptionMessage(e)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SASLContext.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SASLContext.java
index c14c64f..7b930f0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SASLContext.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SASLContext.java
@@ -27,7 +27,6 @@
 package org.opends.server.extensions;
 
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -51,7 +50,7 @@
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPClientConnection;
 import org.opends.server.types.*;
@@ -66,9 +65,7 @@
 public class SASLContext implements CallbackHandler,
     PrivilegedExceptionAction<Boolean>
 {
-
-  // The tracer object for the debug logger.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -238,10 +235,7 @@
       }
       catch (final SaslException ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         final GSSException gex = (GSSException) ex.getCause();
 
         final LocalizableMessage msg;
@@ -308,10 +302,7 @@
     }
     catch (final SaslException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism,
           getExceptionMessage(e));
@@ -335,10 +326,7 @@
     }
     catch (final SaslException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -395,10 +383,7 @@
     }
     catch (final SaslException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism,
           getExceptionMessage(e));
@@ -429,10 +414,7 @@
     }
     catch (final SaslException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism,
           getExceptionMessage(e));
       handleError(msg);
@@ -459,10 +441,7 @@
       }
       catch (NumberFormatException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -491,10 +470,7 @@
       }
       catch (NumberFormatException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -581,10 +557,7 @@
     }
     catch (final PrivilegedActionException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism,
           getExceptionMessage(e));
       handleError(msg);
@@ -671,10 +644,7 @@
       }
       catch (final DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
         setCallbackMsg(ERR_SASL_CANNOT_MAP_AUTHENTRY.get(authid,
             de.getMessage()));
         callback.setAuthorized(false);
@@ -731,10 +701,7 @@
     }
     catch (final DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       setCallbackMsg(ERR_SASL_AUTHZID_INVALID_DN.get(responseAuthzID,
           e.getMessageObject()));
       callback.setAuthorized(false);
@@ -767,10 +734,7 @@
         }
         catch (final DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           setCallbackMsg(ERR_SASL_AUTHZID_CANNOT_GET_ENTRY.get(
               String.valueOf(authzDN), e.getMessageObject()));
           callback.setAuthorized(false);
@@ -833,10 +797,7 @@
       }
       catch (final DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         setCallbackMsg(ERR_SASL_AUTHZID_NO_MAPPED_ENTRY.get(authzid));
         callback.setAuthorized(false);
         return;
@@ -916,10 +877,7 @@
     }
     catch (final DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       setCallbackMsg(ERR_SASL_CANNOT_GET_ENTRY_BY_DN.get(
           String.valueOf(userDN), SASL_MECHANISM_DIGEST_MD5,
           e.getMessageObject()));
@@ -1097,10 +1055,7 @@
       }
       catch (final DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         setCallbackMsg(ERR_SASL_CANNOT_DECODE_USERNAME_AS_DN.get(mechanism,
             userName, e.getMessageObject()));
         return;
@@ -1140,10 +1095,7 @@
       }
       catch (final DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         setCallbackMsg(ERR_SASLDIGESTMD5_CANNOT_MAP_USERNAME.get(
             String.valueOf(userName), e.getMessageObject()));
       }
@@ -1200,10 +1152,7 @@
     }
     catch (final Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       setCallbackMsg(ERR_SASL_CANNOT_GET_REVERSIBLE_PASSWORDS.get(
           String.valueOf(authEntry.getName()), mechanism, String.valueOf(e)));
       return;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
index d227809..8175e88 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
@@ -36,7 +36,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -45,7 +45,6 @@
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -62,10 +61,7 @@
 public class SHA1PasswordStorageScheme
        extends PasswordStorageScheme<SHA1PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -109,10 +105,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_SHA_1, String.valueOf(e));
@@ -155,10 +148,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -202,10 +192,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -247,10 +234,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -269,10 +253,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
index ff242df..2edfcee 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
@@ -46,7 +46,7 @@
 import org.opends.server.api.AccountStatusNotificationHandler;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AccountStatusNotification;
 import org.opends.server.types.AccountStatusNotificationProperty;
 import org.opends.server.types.AccountStatusNotificationType;
@@ -54,7 +54,6 @@
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
@@ -62,7 +61,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -101,10 +99,7 @@
        implements ConfigurationChangeListener
                        <SMTPAccountStatusNotificationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -214,9 +209,9 @@
       }
 
       map.put(t, s.substring(colonPos+1).trim());
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Subject for notification type " + t.getName() +
+        logger.trace("Subject for notification type " + t.getName() +
                          ":  " + map.get(t));
       }
     }
@@ -289,9 +284,9 @@
       }
 
       map.put(t, parseTemplateFile(f));
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Decoded template elment list for type " +
+        logger.trace("Decoded template elment list for type " +
                          t.getName());
       }
     }
@@ -332,9 +327,9 @@
           break;
         }
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Read message template line " + line);
+          logger.trace("Read message template line " + line);
         }
 
         lineNumber++;
@@ -344,9 +339,9 @@
           int delimPos = line.indexOf("%%", startPos);
           if (delimPos < 0)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo("No more tokens -- adding text " +
+              logger.trace("No more tokens -- adding text " +
                                line.substring(startPos));
             }
 
@@ -358,9 +353,9 @@
           {
             if (delimPos > startPos)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugInfo("Adding text before token " +
+                logger.trace("Adding text before token " +
                                  line.substring(startPos));
               }
 
@@ -382,9 +377,9 @@
               String lowerTokenStr = toLowerCase(tokenStr);
               if (lowerTokenStr.equals("notification-type"))
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugInfo("Found a notification type token " +
+                  logger.trace("Found a notification type token " +
                                    tokenStr);
                 }
 
@@ -393,9 +388,9 @@
               }
               else if (lowerTokenStr.equals("notification-message"))
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugInfo("Found a notification message token " +
+                  logger.trace("Found a notification message token " +
                                    tokenStr);
                 }
 
@@ -404,9 +399,9 @@
               }
               else if (lowerTokenStr.equals("notification-user-dn"))
               {
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                 {
-                  TRACER.debugInfo("Found a notification user DN token " +
+                  logger.trace("Found a notification user DN token " +
                                    tokenStr);
                 }
 
@@ -426,9 +421,9 @@
                 }
                 else
                 {
-                  if (debugEnabled())
+                  if (logger.isTraceEnabled())
                   {
-                    TRACER.debugInfo("Found a user attribute token for  " +
+                    logger.trace("Found a user attribute token for  " +
                                      attrType.getNameOrOID() + " -- " +
                                      tokenStr);
                   }
@@ -451,9 +446,9 @@
                 }
                 else
                 {
-                  if (debugEnabled())
+                  if (logger.isTraceEnabled())
                   {
-                    TRACER.debugInfo("Found a notification property token " +
+                    logger.trace("Found a notification property token " +
                                      "for " + propertyName + " -- " + tokenStr);
                   }
 
@@ -483,10 +478,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new ConfigException(ERR_SMTP_ASNH_TEMPLATE_CANNOT_PARSE.get(
                                      f.getAbsolutePath(),
@@ -541,9 +533,9 @@
          templates.get(notificationType);
     if (templateElements == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("No message template for notification type " +
+        logger.trace("No message template for notification type " +
                          notificationType.getName());
       }
 
@@ -569,9 +561,9 @@
           {
             for (AttributeValue v : a)
             {
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugInfo("Adding end user recipient " +
+                logger.trace("Adding end user recipient " +
                                  v.getValue().toString() + " from attr " +
                                  a.getNameWithOptions());
               }
@@ -588,9 +580,9 @@
         {
           // There are no recipients at all, so there's no point in generating
           // the message.  Return without doing anything.
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("No end user recipients, and no explicit " +
+            logger.trace("No end user recipients, and no explicit " +
                              "recipients");
           }
 
@@ -603,9 +595,9 @@
             // We can't send the message to the end user, and the handler is
             // configured to not send only to administrators, so we shouln't
             // do anything.
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo("No end user recipients, and shouldn't send " +
+              logger.trace("No end user recipients, and shouldn't send " +
                                "without end user recipients");
             }
 
@@ -619,11 +611,11 @@
     // Next, add any explicitly-defined recipients.
     if (recipientAddrs != null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         for (String s : recipientAddrs)
         {
-          TRACER.debugInfo("Adding explicit recipient " + s);
+          logger.trace("Adding explicit recipient " + s);
         }
       }
 
@@ -638,14 +630,14 @@
     {
       subject = INFO_SMTP_ASNH_DEFAULT_SUBJECT.get().toString();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Using default subject of " + subject);
+        logger.trace("Using default subject of " + subject);
       }
     }
-    else if (debugEnabled())
+    else if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Using per-type subject of " + subject);
+      logger.trace("Using per-type subject of " + subject);
     }
 
 
@@ -662,9 +654,9 @@
     EMailMessage message = new EMailMessage(config.getSenderAddress(),
                                             recipients, subject);
     message.setBody(messageBody);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Set message body of " + messageBody.toString());
+      logger.trace("Set message body of " + messageBody.toString());
     }
 
 
@@ -672,17 +664,14 @@
     {
       message.send();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Successfully sent the message");
+        logger.trace("Successfully sent the message");
       }
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(ERR_SMTP_ASNH_CANNOT_SEND_MESSAGE.get(notificationType.getName(),
                     notification.getUserDN().toString(),
@@ -731,10 +720,7 @@
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       unacceptableReasons.add(ce.getMessageObject());
       configAcceptable = false;
@@ -746,10 +732,7 @@
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       unacceptableReasons.add(ce.getMessageObject());
       configAcceptable = false;
@@ -781,10 +764,7 @@
     }
     catch (ConfigException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
 
       LinkedList<LocalizableMessage> messageList = new LinkedList<LocalizableMessage>();
       messageList.add(ce.getMessageObject());
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java
index b9a1f90..db702e6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java
@@ -39,14 +39,12 @@
 import org.opends.server.api.AlertHandler;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.EMailMessage;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.ExtensionMessages.*;
 
@@ -62,10 +60,7 @@
        implements AlertHandler<SMTPAlertHandlerCfg>,
                   ConfigurationChangeListener<SMTPAlertHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -175,10 +170,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage msg = WARN_SMTPALERTHANDLER_ERROR_SENDING_MESSAGE.get(
           alertType, alertMessage, e.getLocalizedMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
index 6345db5..c95e2a4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
@@ -38,7 +38,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -46,7 +46,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -65,10 +64,7 @@
 public class SaltedMD5PasswordStorageScheme
        extends PasswordStorageScheme<SaltedMD5PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -124,10 +120,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_MD5, String.valueOf(e));
@@ -181,10 +174,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -243,10 +233,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -294,10 +281,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -323,10 +307,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -393,10 +374,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -439,10 +417,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
index e98debe..e97c6c3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
@@ -38,7 +38,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -46,7 +46,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -65,10 +64,7 @@
 public class SaltedSHA1PasswordStorageScheme
        extends PasswordStorageScheme<SaltedSHA1PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -125,10 +121,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_SHA_1, String.valueOf(e));
@@ -181,10 +174,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -243,10 +233,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -303,10 +290,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -332,10 +316,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -402,10 +383,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -448,10 +426,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
index b77b5a7..ba3675e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
@@ -38,7 +38,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -46,7 +46,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -65,10 +64,7 @@
 public class SaltedSHA256PasswordStorageScheme
        extends PasswordStorageScheme<SaltedSHA256PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -126,10 +122,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_SHA_256, String.valueOf(e));
@@ -183,10 +176,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -245,10 +235,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -307,10 +294,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -336,10 +320,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -406,10 +387,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -452,10 +430,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
index 6acb179..c291391 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
@@ -38,7 +38,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -46,7 +46,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -65,10 +64,7 @@
 public class SaltedSHA384PasswordStorageScheme
        extends PasswordStorageScheme<SaltedSHA384PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -127,10 +123,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_SHA_384, String.valueOf(e));
@@ -184,10 +177,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -246,10 +236,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -308,10 +295,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -337,10 +321,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -407,10 +388,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -453,10 +431,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
index b3ba45f..2d21115 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
@@ -38,7 +38,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -46,7 +46,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -65,10 +64,7 @@
 public class SaltedSHA512PasswordStorageScheme
        extends PasswordStorageScheme<SaltedSHA512PasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -127,10 +123,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST.get(
           MESSAGE_DIGEST_ALGORITHM_SHA_512, String.valueOf(e));
@@ -183,10 +176,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -245,10 +235,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -307,10 +294,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD.get(
           storedPassword.toString(), String.valueOf(e));
@@ -336,10 +320,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return false;
       }
@@ -406,10 +387,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD.get(
             CLASS_NAME, getExceptionMessage(e));
@@ -452,10 +430,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
index b8026b2..7f43936 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
@@ -41,9 +41,7 @@
 import org.opends.server.types.MemberList;
 import org.opends.server.types.MembershipException;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ExtensionMessages.*;
 import static org.forgerock.util.Reject.*;
 
@@ -57,10 +55,7 @@
 public class SimpleStaticGroupMemberList
        extends MemberList
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -125,10 +120,7 @@
       catch (DirectoryException de)
       {
         // Should not happen
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
         LocalizableMessage message = ERR_STATICMEMBERS_CANNOT_DECODE_DN.
             get(String.valueOf(dn), String.valueOf(groupDN),
                 String.valueOf(de.getMessageObject()));
@@ -166,10 +158,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         LocalizableMessage message = ERR_STATICMEMBERS_CANNOT_GET_ENTRY.
             get(String.valueOf(memberDN), String.valueOf(groupDN),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
index ecf79e0..bed734e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
@@ -46,18 +46,16 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.CacheEntry;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.util.ServerConstants;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ExtensionMessages.*;
 
 
@@ -73,10 +71,7 @@
         ConfigurationChangeListener<SoftReferenceEntryCacheCfg>,
         Runnable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The mapping between entry DNs and their corresponding entries.
   private ConcurrentHashMap<DN,SoftReference<CacheEntry>> dnMap;
@@ -651,10 +646,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -681,9 +673,7 @@
         null
         );
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     return attrs;
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java b/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
index 12828ae..e843949 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
@@ -42,7 +42,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.config.ConfigException;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPControl;
 import org.opends.server.types.Attribute;
@@ -51,7 +51,6 @@
 import org.opends.server.types.Attributes;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.Control;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryConfig;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
@@ -67,7 +66,6 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
@@ -86,10 +84,7 @@
 public class StaticGroup
        extends Group<StaticGroupImplementationCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The attribute type used to hold the membership list for this group.
   private AttributeType memberAttributeType;
@@ -253,10 +248,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = ERR_STATICGROUP_CANNOT_DECODE_MEMBER_VALUE_AS_DN.
                 get(v.getValue().toString(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
index b99fa4a..b326a98 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -44,9 +44,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.types.*;
@@ -68,10 +66,7 @@
        implements ConfigurationChangeListener<
                   SubjectAttributeToUserAttributeCertificateMapperCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN of the configuration entry for this certificate mapper.
   private DN configEntryDN;
@@ -240,10 +235,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SATUACM_PEER_CERT_NOT_X509.get(
           String.valueOf(certificateChain[0].getType()));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
index 170dab1..0638d27 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
@@ -46,9 +46,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.types.*;
@@ -67,10 +65,7 @@
        implements ConfigurationChangeListener<
                        SubjectDNToUserAttributeCertificateMapperCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN of the configuration entry for this certificate mapper.
   private DN configEntryDN;
@@ -178,10 +173,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SDTUACM_PEER_CERT_NOT_X509.get(
           String.valueOf(certificateChain[0].getType()));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
index 6894ebb..d23b3c8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
@@ -39,10 +39,9 @@
 import org.opends.server.api.CertificateMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -53,10 +52,7 @@
 public class SubjectEqualsDNCertificateMapper
        extends CertificateMapper<SubjectEqualsDNCertificateMapperCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this certificate mapper.  Note that all actual
@@ -123,10 +119,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SEDCM_PEER_CERT_NOT_X509.get(
           String.valueOf(certificateChain[0].getType()));
@@ -143,10 +136,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SEDCM_CANNOT_DECODE_SUBJECT_AS_DN.get(
           String.valueOf(peerPrincipal), getExceptionMessage(e));
@@ -172,10 +162,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       LocalizableMessage message = ERR_SEDCM_CANNOT_GET_ENTRY.get(
           String.valueOf(subjectDN), de.getMessageObject());
@@ -184,10 +171,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SEDCM_CANNOT_GET_ENTRY.get(
           String.valueOf(subjectDN), getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/TLSByteChannel.java b/opendj3-server-dev/src/server/org/opends/server/extensions/TLSByteChannel.java
index 0296044..3ffa219 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/TLSByteChannel.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/TLSByteChannel.java
@@ -22,14 +22,12 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
- *      Portions copyright 2012-2013 ForgeRock AS
+ *      Portions Copyright 2012-2014 ForgeRock AS
  */
 package org.opends.server.extensions;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ByteChannel;
@@ -46,8 +44,7 @@
 import javax.net.ssl.SSLPeerUnverifiedException;
 import javax.net.ssl.SSLSession;
 
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -447,7 +444,7 @@
   }
 
   private static final ByteBuffer EMPTY_BUFFER = ByteBuffer.allocate(0);
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final ByteChannelImpl pimpl = new ByteChannelImpl();
   private final ByteChannel channel;
@@ -520,10 +517,7 @@
     }
     catch (final SSLPeerUnverifiedException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return new Certificate[0];
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java b/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
index 002ecad..390b0f4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
@@ -31,8 +31,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -48,11 +46,10 @@
 import org.opends.server.api.WorkQueue;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.monitors.TraditionalWorkQueueMonitor;
 import org.opends.server.types.CancelRequest;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.Operation;
@@ -67,10 +64,7 @@
 public class TraditionalWorkQueue extends WorkQueue<TraditionalWorkQueueCfg>
     implements ConfigurationChangeListener<TraditionalWorkQueueCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The maximum number of times to retry getting the next operation from the
@@ -218,10 +212,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_CONFIG_WORK_QUEUE_CANNOT_CREATE_MONITOR.get(
             String.valueOf(TraditionalWorkQueueMonitor.class),
@@ -273,10 +264,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(WARN_QUEUE_UNABLE_TO_CANCEL.get(String.valueOf(o),
             String.valueOf(e)));
@@ -292,10 +280,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(WARN_QUEUE_UNABLE_TO_NOTIFY_THREAD.get(t.getName(),
             String.valueOf(e)));
@@ -540,10 +525,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This should not happen. The only recourse we have is to log a message
       // and try again.
@@ -724,10 +706,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
       finally
       {
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkerThread.java b/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
index 91811fc..fb3a347 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
@@ -32,14 +32,12 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.CancelRequest;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Operation;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -51,10 +49,7 @@
 public class TraditionalWorkerThread
        extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Indicates whether the Directory Server is shutting down and this thread
@@ -169,13 +164,13 @@
       }
       catch (Throwable t)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Uncaught exception in worker thread while processing " +
                 "operation %s: %s", String.valueOf(operation), t);
 
-          TRACER.debugCaught(DebugLogLevel.ERROR, t);
+          logger.traceException(t);
         }
 
         try
@@ -193,13 +188,13 @@
         }
         catch (Throwable t2)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugWarning(
+            logger.trace(
               "Exception in worker thread while trying to log a " +
                   "message about an uncaught exception %s: %s", t, t2);
 
-            TRACER.debugCaught(DebugLogLevel.ERROR, t2);
+            logger.traceException(t2);
           }
         }
 
@@ -215,10 +210,7 @@
         }
         catch (Throwable t2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, t2);
-          }
+          logger.traceException(t2);
         }
       }
     }
@@ -236,9 +228,9 @@
     }
 
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " exiting.");
+      logger.trace(getName() + " exiting.");
     }
   }
 
@@ -250,9 +242,9 @@
    */
   public void shutDown()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " being signaled to shut down.");
+      logger.trace(getName() + " being signaled to shut down.");
     }
 
     // Set a flag that indicates that the thread should stop running.
@@ -269,12 +261,12 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Caught an exception while trying to interrupt the worker " +
                 "thread waiting for work: %s", e);
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
         }
       }
     }
@@ -292,12 +284,12 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugWarning(
+          logger.trace(
             "Caught an exception while trying to abandon the " +
                 "operation in progress for the worker thread: %s", e);
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/TripleDESPasswordStorageScheme.java b/opendj3-server-dev/src/server/org/opends/server/extensions/TripleDESPasswordStorageScheme.java
index 61d13a2..a6b11ee 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/TripleDESPasswordStorageScheme.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/TripleDESPasswordStorageScheme.java
@@ -33,7 +33,7 @@
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -43,7 +43,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -57,10 +56,7 @@
 public class TripleDESPasswordStorageScheme
        extends PasswordStorageScheme<TripleDESPasswordStorageSchemeCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -125,10 +121,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_3DES,
                                                   getExceptionMessage(e));
@@ -168,10 +161,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_ENCRYPT.get(STORAGE_SCHEME_NAME_3DES,
                                                   getExceptionMessage(e));
@@ -205,10 +195,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -242,10 +229,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage m = ERR_PWSCHEME_CANNOT_DECRYPT.get(STORAGE_SCHEME_NAME_3DES,
                                                   getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/VirtualStaticGroup.java b/opendj3-server-dev/src/server/org/opends/server/extensions/VirtualStaticGroup.java
index 0028df0..7999414 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/VirtualStaticGroup.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/VirtualStaticGroup.java
@@ -37,11 +37,10 @@
 import org.opends.server.api.Group;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.AttributeValue;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
@@ -54,7 +53,6 @@
 
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -67,10 +65,7 @@
 public class VirtualStaticGroup
        extends Group<VirtualStaticGroupImplementationCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN of the entry that holds the definition for this group.
   private DN groupEntryDN;
@@ -163,10 +158,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_CANNOT_DECODE_TARGET.
                 get(v.getValue().toString(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java b/opendj3-server-dev/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java
index b5258d5..636ce7e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java
@@ -36,11 +36,10 @@
 import org.opends.server.controls.ProxiedAuthV1Control;
 import org.opends.server.controls.ProxiedAuthV2Control;
 import org.opends.server.core.ExtendedOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -50,10 +49,7 @@
 public class WhoAmIExtendedOperation
        extends ExtendedOperationHandler<WhoAmIExtendedOperationHandlerCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Create an instance of this "Who Am I?" extended operation.  All
@@ -119,10 +115,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operation.setResultCode(de.getResultCode());
       operation.appendErrorMessage(de.getMessageObject());
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
index 08e196e..84a32b5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
@@ -26,7 +26,6 @@
 package org.opends.server.loggers;
 
 import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.net.InetAddress;
@@ -38,6 +37,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg2;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.admin.server.ConfigurationAddListener;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.server.ConfigurationDeleteListener;
@@ -51,7 +51,6 @@
 import org.opends.server.authorization.dseecompat.PatternDN;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.AddressMask;
 import org.forgerock.opendj.ldap.ByteString;
@@ -297,12 +296,8 @@
       if (requestMatched == null)
       {
         // This should not happen.
-        if (debugEnabled())
-        {
-          TRACER.debugWarning(
-              "Operation attachment %s not found while logging response",
+        logger.trace("Operation attachment %s not found while logging response",
               attachmentName);
-        }
         requestMatched = isRequestLoggable(operation);
       }
 
@@ -665,10 +660,7 @@
           }
           catch (final DirectoryException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+             logger.traceException(e);
           }
         }
       }
@@ -687,10 +679,7 @@
           }
           catch (final DirectoryException e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -1169,7 +1158,7 @@
   /**
    * The tracer object for the debug logger.
    */
-  protected static final DebugTracer TRACER = getTracer();
+  protected static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private AccessLogPublisherCfg cfg = null;
   private Filter filter = null;
   private final ChangeListener changeListener = new ChangeListener();
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java b/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
index 532d398..09dda19 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
@@ -25,23 +25,20 @@
  *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
-import org.forgerock.i18n.LocalizableMessage;
-import static org.opends.messages.LoggerMessages.ERR_LOGGER_ERROR_LISTING_FILES;
-
-import org.opends.server.admin.std.server.FileCountLogRetentionPolicyCfg;
-import org.opends.server.admin.server.ConfigurationChangeListener;
+import static org.opends.messages.LoggerMessages.*;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.ArrayList;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.ResultCode;
-import org.opends.server.types.DirectoryException;
+import org.forgerock.i18n.LocalizableMessage;
+import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.admin.std.server.FileCountLogRetentionPolicyCfg;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.ResultCode;
 
 
 /**
@@ -52,10 +49,6 @@
     RetentionPolicy<FileCountLogRetentionPolicyCfg>,
     ConfigurationChangeListener<FileCountLogRetentionPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
 
   private int numFiles = 0;
   private FileCountLogRetentionPolicyCfg config;
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java b/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
index ac05b8a..e6f70cc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
@@ -27,7 +27,6 @@
 package org.opends.server.loggers;
 
 import static org.opends.messages.LoggerMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.io.File;
@@ -36,12 +35,11 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.FreeDiskSpaceLogRetentionPolicyCfg;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 
@@ -53,10 +51,7 @@
     RetentionPolicy<FreeDiskSpaceLogRetentionPolicyCfg>,
     ConfigurationChangeListener<FreeDiskSpaceLogRetentionPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private long freeDiskSpace = 0;
   private FreeDiskSpaceLogRetentionPolicyCfg config;
@@ -135,10 +130,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message =
           ERR_LOGGER_ERROR_OBTAINING_FREE_SPACE.get(files[0].toString(),
               stackTraceToSingleLineString(e));
@@ -146,11 +138,8 @@
                                    message, e);
     }
 
-    if(debugEnabled())
-    {
-      TRACER.debugInfo("Current free disk space: %d, Required: %d", freeSpace,
+    logger.trace("Current free disk space: %d, Required: %d", freeSpace,
           freeDiskSpace);
-    }
 
     if (freeSpace > freeDiskSpace)
     {
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/GZIPAction.java b/opendj3-server-dev/src/server/org/opends/server/loggers/GZIPAction.java
index 782ff60..3ad057c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/GZIPAction.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/GZIPAction.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
@@ -31,9 +32,7 @@
 import java.io.IOException;
 import java.util.zip.GZIPOutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This class implements a post rotation action that compresses
@@ -41,10 +40,8 @@
  */
 public class GZIPAction implements PostRotationAction
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   private File originalFile;
@@ -120,10 +117,7 @@
       return true;
     } catch(IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
       if (inputStreamOpen)
       {
         try
@@ -132,10 +126,7 @@
         }
         catch (Exception fe)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, fe);
-          }
+         logger.traceException(fe);
           // Cannot do much. Ignore.
         }
       }
@@ -147,10 +138,7 @@
         }
         catch (Exception ge)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ge);
-          }
+          logger.traceException(ge);
           // Cannot do much. Ignore.
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java b/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java
index a960e30..e5748ac 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java
@@ -35,12 +35,12 @@
 import org.opends.server.admin.std.server.SizeLimitLogRotationPolicyCfg;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.util.TimeThread;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 import static org.opends.messages.LoggerMessages.*;
+
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.io.*;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -61,10 +61,8 @@
     implements ServerShutdownListener, TextWriter,
     ConfigurationChangeListener<SizeLimitLogRotationPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final String UTF8_ENCODING= "UTF-8";
 
@@ -181,7 +179,6 @@
     outputStream = new MeteredStream(stream, file.length());
 
     OutputStreamWriter osw = new OutputStreamWriter(outputStream, encoding);
-    BufferedWriter bw = null;
     if(bufferSize <= 0)
     {
       writer = new BufferedWriter(osw);
@@ -434,10 +431,7 @@
         }
         catch(Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         for(RotationPolicy rotationPolicy : rotationPolicies)
@@ -459,11 +453,7 @@
             {
               file.delete();
               totalFilesCleaned++;
-              if(debugEnabled())
-              {
-                TRACER.debugInfo(retentionPolicy.toString() +
-                    " cleaned up log file %s", file.toString());
-              }
+              logger.trace("%s cleaned up log file %s", retentionPolicy, file);
             }
 
             if(files.length > 0)
@@ -474,10 +464,7 @@
           }
           catch(DirectoryException de)
           {
-            if(debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
             errorHandler.handleDeleteError(retentionPolicy, de);
           }
         }
@@ -639,10 +626,7 @@
     }
     catch(Exception e)
     {
-      if(debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       errorHandler.handleCloseError(e);
     }
 
@@ -657,10 +641,7 @@
     }
     catch (Exception e)
     {
-      if(debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       errorHandler.handleOpenError(currentFile, e);
     }
 
@@ -668,12 +649,8 @@
     //  new RotationActionThread(newFile, actions, configEntry);
     //rotThread.start();
 
-    if(debugEnabled())
-    {
-      TRACER.debugInfo("Log file %s rotated and renamed to %s",
+    logger.trace("Log file %s rotated and renamed to %s",
                        currentFile, newFile);
-    }
-
     totalFilesRotated++;
     lastRotationTime = TimeThread.getCalendar();
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/RotationActionThread.java b/opendj3-server-dev/src/server/org/opends/server/loggers/RotationActionThread.java
index 3f48433..05d9493 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/RotationActionThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/RotationActionThread.java
@@ -22,18 +22,16 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
 import java.util.ArrayList;
 
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.config.ConfigEntry;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
-
 /**
  * This thread is spawned off at the time of file rotation to
  * execute specific actions such as compression, encryption,
@@ -41,11 +39,7 @@
  */
 public class RotationActionThread extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
-
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private ArrayList<ActionType> actions;
   private String filename;
@@ -96,8 +90,7 @@
             //action = new SignatureAction(filename, alias);
             break;
           case ENCRYPT:
-            String encFile = filename + ".enc";
-            //String certAlias =
+          //String certAlias =
             //  RotationConfigUtil.getCertificateAlias(configEntry);
             // FIXME - make the encryption algorithm configurable.
             //action = new EncryptAction(filename, encFile, false, certAlias,
@@ -118,10 +111,7 @@
       }
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java b/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
index 10d9cb3..4e0fb5a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
@@ -25,23 +25,21 @@
  *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
-import org.forgerock.i18n.LocalizableMessage;
-import static org.opends.messages.LoggerMessages.ERR_LOGGER_ERROR_LISTING_FILES;
-
-import org.opends.server.admin.std.server.SizeLimitLogRetentionPolicyCfg;
-import org.opends.server.admin.server.ConfigurationChangeListener;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.ResultCode;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.core.DirectoryServer;
-
+import static org.opends.messages.LoggerMessages.*;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.ArrayList;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.admin.std.server.SizeLimitLogRetentionPolicyCfg;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.ResultCode;
 
 /**
  * This class implements a retention policy based on the amount of
@@ -51,10 +49,8 @@
     RetentionPolicy<SizeLimitLogRetentionPolicyCfg>,
     ConfigurationChangeListener<SizeLimitLogRetentionPolicyCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private static final File[] EMPTY_FILE_LIST = new File[0];
 
   private long size = 0;
@@ -124,10 +120,7 @@
       totalLength += file.length();
     }
 
-    if(debugEnabled())
-    {
-      TRACER.debugInfo("Total size of files: %d, Max: %d", totalLength, size);
-    }
+    logger.trace("Total size of files: %d, Max: %d", totalLength, size);
 
     if (totalLength <= size)
     {
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/TimeStampNaming.java b/opendj3-server-dev/src/server/org/opends/server/loggers/TimeStampNaming.java
index 047c58f..fa80022 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/TimeStampNaming.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/TimeStampNaming.java
@@ -22,25 +22,22 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
-import org.opends.server.util.TimeThread;
-import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-
 import java.io.File;
 import java.io.FilenameFilter;
 
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.opends.server.util.TimeThread;
+
 /**
  * A file name policy that names files suffixed by the time it was created.
  */
 public class TimeStampNaming implements FileNamingPolicy
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private File file;
   private TimeStampNamingFilter filter;
@@ -154,7 +151,7 @@
 
     if(files == null)
     {
-      TRACER.debugError("Unable to list files named by policy " +
+      logger.trace("Unable to list files named by policy " +
           "with initial file %s in directory %s", file, directory);
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/DebugTracer.java b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/DebugTracer.java
index a3a309f..e17931b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/DebugTracer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/DebugTracer.java
@@ -33,10 +33,6 @@
 import org.opends.server.loggers.LogCategory;
 
 import java.util.Map;
-import com.sleepycat.je.OperationStatus;
-import com.sleepycat.je.Transaction;
-import com.sleepycat.je.DatabaseEntry;
-import com.sleepycat.je.Database;
 
 /**
  * Class for source-code tracing at the method level.
@@ -382,174 +378,6 @@
   }
 
   /**
-   * Log a JE database access event.
-   *
-   * @param level the level of the log message.
-   * @param status status of the JE operation.
-   * @param database the database handle.
-   * @param txn  transaction handle (may be null).
-   * @param key  the key to dump.
-   * @param data the data to dump.
-   */
-  public void debugJEAccess(LogLevel level, OperationStatus status,
-                            Database database, Transaction txn,
-                            DatabaseEntry key, DatabaseEntry data)
-  {
-    if(DebugLogger.debugEnabled())
-    {
-      StackTraceElement[] stackTrace = null;
-      StackTraceElement[] filteredStackTrace = null;
-      StackTraceElement callerFrame = null;
-      for (PublisherSettings settings : publisherSettings)
-      {
-        TraceSettings activeSettings = settings.classSettings;
-        Map<String, TraceSettings> methodSettings = settings.methodSettings;
-
-        if (shouldLog(DebugLogCategory.MESSAGE, activeSettings) || methodSettings != null)
-        {
-          if(stackTrace == null)
-          {
-            stackTrace = Thread.currentThread().getStackTrace();
-          }
-          if (callerFrame == null)
-          {
-            callerFrame = getCallerFrame(stackTrace);
-          }
-
-          String signature = callerFrame.getMethodName();
-
-          // Specific method settings still could exist. Try getting
-          // the settings for this method.
-          if(methodSettings != null)
-          {
-            TraceSettings mSettings = methodSettings.get(signature);
-
-            if (mSettings == null)
-            {
-              // Try looking for an undecorated method name
-              int idx = signature.indexOf('(');
-              if (idx != -1)
-              {
-                mSettings =
-                    methodSettings.get(signature.substring(0, idx));
-              }
-            }
-
-            // If this method does have a specific setting and it is not
-            // suppose to be logged, continue.
-            if (mSettings != null)
-            {
-              if(!shouldLog(DebugLogCategory.MESSAGE, mSettings))
-              {
-                continue;
-              }
-              else
-              {
-                activeSettings = mSettings;
-              }
-            }
-          }
-
-          String sl = callerFrame.getFileName() + ":" +
-              callerFrame.getLineNumber();
-
-          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
-          {
-            filteredStackTrace =
-                DebugStackTraceFormatter.SMART_FRAME_FILTER.
-                    getFilteredStackTrace(stackTrace);
-          }
-
-          settings.debugPublisher.traceJEAccess(activeSettings, signature,
-                                                sl, status, database, txn,
-                                                key, data, filteredStackTrace);
-        }
-      }
-    }
-  }
-
-  /**
-   * Log a protocol element.
-   *
-   * @param level the level of the log message.
-   * @param elementStr the string representation of protocol element.
-   */
-  public void debugProtocolElement(LogLevel level, String elementStr)
-  {
-    if(DebugLogger.debugEnabled() && elementStr != null)
-    {
-      StackTraceElement[] stackTrace = null;
-      StackTraceElement[] filteredStackTrace = null;
-      StackTraceElement callerFrame = null;
-      for (PublisherSettings settings : publisherSettings)
-      {
-        TraceSettings activeSettings = settings.classSettings;
-        Map<String, TraceSettings> methodSettings = settings.methodSettings;
-
-        if (shouldLog(DebugLogCategory.MESSAGE, activeSettings) || methodSettings != null)
-        {
-          if(stackTrace == null)
-          {
-            stackTrace = Thread.currentThread().getStackTrace();
-          }
-          if (callerFrame == null)
-          {
-            callerFrame = getCallerFrame(stackTrace);
-          }
-
-          String signature = callerFrame.getMethodName();
-
-          // Specific method settings still could exist. Try getting
-          // the settings for this method.
-          if(methodSettings != null)
-          {
-            TraceSettings mSettings = methodSettings.get(signature);
-
-            if (mSettings == null)
-            {
-              // Try looking for an undecorated method name
-              int idx = signature.indexOf('(');
-              if (idx != -1)
-              {
-                mSettings =
-                    methodSettings.get(signature.substring(0, idx));
-              }
-            }
-
-            // If this method does have a specific setting and it is not
-            // suppose to be logged, continue.
-            if (mSettings != null)
-            {
-              if(!shouldLog(DebugLogCategory.MESSAGE, mSettings))
-              {
-                continue;
-              }
-              else
-              {
-                activeSettings = mSettings;
-              }
-            }
-          }
-
-          String sl = callerFrame.getFileName() + ":" +
-              callerFrame.getLineNumber();
-
-          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
-          {
-            filteredStackTrace =
-                DebugStackTraceFormatter.SMART_FRAME_FILTER.
-                    getFilteredStackTrace(stackTrace);
-          }
-
-          settings.debugPublisher.traceProtocolElement(activeSettings, signature,
-                                                       sl, elementStr,
-                                                       filteredStackTrace);
-        }
-      }
-    }
-  }
-
-  /**
    * Gets the name of the class this tracer traces.
    *
    * @return The name of the class this tracer traces.
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
index a5c05c3..b057ce6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
@@ -44,12 +44,8 @@
 import org.opends.server.core.ServerContext;
 import org.opends.server.loggers.*;
 import org.opends.server.types.*;
-import org.opends.server.util.ServerConstants;
-import org.opends.server.util.StaticUtils;
 import org.opends.server.util.TimeThread;
 
-import com.sleepycat.je.*;
-
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -505,108 +501,6 @@
    * {@inheritDoc}
    */
   @Override
-  public void traceJEAccess(TraceSettings settings,
-                            String signature,
-                            String sourceLocation,
-                            OperationStatus status,
-                            Database database,
-                            Transaction txn, DatabaseEntry key,
-                            DatabaseEntry data, StackTraceElement[] stackTrace)
-  {
-    LogCategory category = DebugLogCategory.MESSAGE;
-
-    // Build the string that is common to category DATABASE_ACCESS.
-    StringBuilder builder = new StringBuilder();
-    builder.append(" (");
-    builder.append(status.toString());
-    builder.append(")");
-    builder.append(" db=");
-    try
-    {
-      builder.append(database.getDatabaseName());
-    }
-    catch(DatabaseException de)
-    {
-      builder.append(de.toString());
-    }
-    if (txn != null)
-    {
-      builder.append(" txnid=");
-      try
-      {
-        builder.append(txn.getId());
-      }
-      catch(DatabaseException de)
-      {
-        builder.append(de.toString());
-      }
-    }
-    else
-    {
-      builder.append(" txnid=none");
-    }
-
-    builder.append(ServerConstants.EOL);
-    if(key != null)
-    {
-      builder.append("key:");
-      builder.append(ServerConstants.EOL);
-      StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-    }
-
-    // If the operation was successful we log the same common information
-    // plus the data
-    if (status == OperationStatus.SUCCESS && data != null)
-    {
-
-      builder.append("data(len=");
-      builder.append(data.getSize());
-      builder.append("):");
-      builder.append(ServerConstants.EOL);
-      StaticUtils.byteArrayToHexPlusAscii(builder, data.getData(), 4);
-
-    }
-
-    String stack = null;
-    if(stackTrace != null)
-    {
-      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
-                                                        settings.stackDepth);
-    }
-    publish(category, signature, sourceLocation, builder.toString(),
-            stack);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void traceProtocolElement(TraceSettings settings,
-                                   String signature,
-                                   String sourceLocation,
-                                   String decodedForm,
-                                   StackTraceElement[] stackTrace)
-  {
-    LogCategory category = DebugLogCategory.MESSAGE;
-
-    StringBuilder builder = new StringBuilder();
-    builder.append(ServerConstants.EOL);
-    builder.append(decodedForm);
-
-    String stack = null;
-    if(stackTrace != null)
-    {
-      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
-                                                        settings.stackDepth);
-    }
-    publish(category, signature, sourceLocation, builder.toString(),
-            stack);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
   public void close()
   {
     writer.shutdown();
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TraceSettings.java b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TraceSettings.java
index 1d1de03..5b3ac7d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TraceSettings.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/debug/TraceSettings.java
@@ -92,6 +92,15 @@
   private DebugTargetCfg currentConfig;
 
   /**
+   * Construct new trace settings with default values.
+   */
+  public TraceSettings()
+  {
+    this(DebugLogLevel.VERBOSE, null, false, false, 0, false);
+
+  }
+
+  /**
    * Construct new trace settings at the specified log level.
    *
    * @param level the log level for this setting.
@@ -254,8 +263,6 @@
       //Touch DebugLogLevel and DebugLogCategory so they are statically
       //initialized or parse will not see all the levels/categories.
       LogLevel level = DebugLogLevel.ERROR;
-      LogCategory categoryStub = DebugLogCategory.MESSAGE;
-
       Set<LogCategory> includeCategories = null;
       boolean noArgs = false;
       boolean noRetVal = false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/monitors/BackendMonitor.java b/opendj3-server-dev/src/server/org/opends/server/monitors/BackendMonitor.java
index bf8963d..4b9c83d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/monitors/BackendMonitor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/monitors/BackendMonitor.java
@@ -22,12 +22,12 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.monitors;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 import java.util.LinkedList;
@@ -36,7 +36,7 @@
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.Backend;
 import org.opends.server.api.MonitorProvider;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.BooleanSyntax;
 import org.opends.server.types.*;
 
@@ -73,11 +73,7 @@
 
   // The name for this monitor.
   private String monitorName;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this backend monitor provider that will work with
@@ -184,10 +180,7 @@
         }
         catch (Exception ex)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-          }
+          logger.traceException(ex);
         }
         String s = entryCount + " " + dn.toString();
         builder.add(AttributeValues.create(baseDNEntryCountType, s));
diff --git a/opendj3-server-dev/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java b/opendj3-server-dev/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
index 9466e66..c7d237e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
@@ -28,8 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.lang.reflect.Method;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -44,7 +42,7 @@
 import org.opends.server.backends.jeb.RootContainer;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.EnvironmentStats;
@@ -62,10 +60,7 @@
 public class DatabaseEnvironmentMonitor
        extends MonitorProvider<MonitorProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Represents the statistical information kept for each search filter.
@@ -205,10 +200,7 @@
 
           } catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -236,10 +228,7 @@
           rootContainer.getEnvironmentTransactionStats(statsConfig);
     } catch (DatabaseException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       return null;
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java b/opendj3-server-dev/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
index ce95fe0..2edf223 100644
--- a/opendj3-server-dev/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
@@ -22,13 +22,12 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
- *      Portions copyright 2012 ForgeRock AS.
+ *      Portions Copyright 2012-2014 ForgeRock AS.
  */
 package org.opends.server.monitors;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 import java.lang.management.ManagementFactory;
@@ -47,7 +46,7 @@
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 
 
@@ -59,10 +58,7 @@
 public class SystemInfoMonitorProvider
        extends MonitorProvider<SystemInfoMonitorProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -143,10 +139,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/monitors/VersionMonitorProvider.java b/opendj3-server-dev/src/server/org/opends/server/monitors/VersionMonitorProvider.java
index 04edb9e..3ac938a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/monitors/VersionMonitorProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/monitors/VersionMonitorProvider.java
@@ -22,20 +22,19 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.monitors;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.ArrayList;
 
 import org.opends.server.admin.std.server.VersionMonitorProviderCfg;
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.util.DynamicConstants;
 
@@ -48,10 +47,7 @@
 public class VersionMonitorProvider
        extends MonitorProvider<VersionMonitorProviderCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The name of the attribute used to provide the product name.
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java
index 4c9efa6..25e2335 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.messages.PluginMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.util.StaticUtils.toLowerCase;
 
 import java.util.*;
@@ -46,8 +45,7 @@
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PreParseAddOperation;
 import org.opends.server.types.operation.PreParseModifyOperation;
@@ -71,7 +69,7 @@
   /**
    * Debug tracer.
    */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * A table of attributes to be renamed.
@@ -190,9 +188,9 @@
        */
       if (modifyOperation.getRawModifications().isEmpty())
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("The AttributeCleanupPlugin has eliminated all "
+          logger.trace("The AttributeCleanupPlugin has eliminated all "
               + "modifications. The processing should be stopped.");
         }
         return PluginResult.PreParse.stopProcessing(ResultCode.SUCCESS, null);
@@ -381,9 +379,9 @@
       final String attrName = toLowerCase(rawAttr.getAttributeType().trim());
       if (attributesToRemove.contains(attrName))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("AttributeCleanupPlugin removing '%s'",
+          logger.trace("AttributeCleanupPlugin removing '%s'",
               rawAttr.getAttributeType());
         }
         iterator.remove();
@@ -414,9 +412,9 @@
       final String attrName = toLowerCase(rawAttr.getAttributeType().trim());
       if (attributesToRemove.contains(attrName))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("AttributeCleanupPlugin removing '%s'",
+          logger.trace("AttributeCleanupPlugin removing '%s'",
               rawAttr.getAttributeType());
         }
         iterator.remove();
@@ -445,9 +443,9 @@
       final String toName = attributesToRename.get(fromName);
       if (toName != null)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("AttributeCleanupPlugin renaming '%s' to '%s'",
+          logger.trace("AttributeCleanupPlugin renaming '%s' to '%s'",
               rawAttr.getAttributeType(), toName);
         }
         rawAttr.setAttributeType(toName);
@@ -479,9 +477,9 @@
       final String toName = attributesToRename.get(fromName);
       if (toName != null)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("AttributeCleanupPlugin renaming '%s' to '%s'",
+          logger.trace("AttributeCleanupPlugin renaming '%s' to '%s'",
               rawAttr.getAttributeType(), toName);
         }
         rawAttr.setAttributeType(toName);
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java
index 320d1be..261d7d5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java
@@ -47,8 +47,7 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.operation.PreParseSearchOperation;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.PluginMessages.*;
 
 import static org.opends.server.types.DirectoryConfig.getObjectClass;
@@ -68,10 +67,7 @@
        implements ConfigurationChangeListener<
                        LDAPAttributeDescriptionListPluginCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -111,17 +107,17 @@
           final ObjectClass oc = getObjectClass(lowerName, false);
           if (oc == null)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugWarning("Cannot replace unknown objectclass %s",
+              logger.trace("Cannot replace unknown objectclass %s",
                                   lowerName);
             }
           }
           else
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo("Replacing objectclass %s", lowerName);
+              logger.trace("Replacing objectclass %s", lowerName);
             }
 
             for (final AttributeType at : oc.getRequiredAttributeChain())
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java
index b1526a0..84ee922 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java
@@ -41,7 +41,7 @@
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PreOperationAddOperation;
@@ -50,7 +50,6 @@
 
 import static org.opends.messages.PluginMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.TimeThread.*;
 
 
@@ -64,10 +63,7 @@
        extends DirectoryServerPlugin<LastModPluginCfg>
        implements ConfigurationChangeListener<LastModPluginCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The attribute type for the "createTimestamp" attribute.
   private final AttributeType createTimestampType;
@@ -232,10 +228,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // This should never happen.
       return PluginResult.PreOperation.stopProcessing(
@@ -255,10 +248,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // This should never happen.
       return PluginResult.PreOperation.stopProcessing(
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
index c90ef99..fa0687b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
@@ -32,7 +32,6 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -58,7 +57,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicy;
 import org.opends.server.core.SubentryPasswordPolicy;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.AuthPasswordSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.*;
@@ -75,10 +74,7 @@
        implements ConfigurationChangeListener<PasswordPolicyImportPluginCfg>,
                   ImportTaskListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -343,10 +339,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         return PluginResult.ImportLDIF.stopEntryProcessing(
                 de.getMessageObject());
@@ -428,10 +421,7 @@
                   }
                   catch (Exception e)
                   {
-                    if (debugEnabled())
-                    {
-                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                    }
+                    logger.traceException(e);
 
                     LocalizableMessage message =
                       ERR_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD
@@ -463,10 +453,7 @@
                   }
                   catch (Exception e)
                   {
-                    if (debugEnabled())
-                    {
-                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                    }
+                    logger.traceException(e);
 
                     LocalizableMessage message =
                       ERR_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD
@@ -528,10 +515,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message = ERR_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD
                   .get(t.getNameOrOID(), String.valueOf(entry.getName()),
@@ -586,10 +570,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message = ERR_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD
                   .get(t.getNameOrOID(), String.valueOf(entry.getName()),
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
index f0c50b9..e4ef8c4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
@@ -63,7 +63,7 @@
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.types.*;
@@ -73,8 +73,6 @@
 
 import static org.opends.messages.PluginMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -98,10 +96,7 @@
         implements ConfigurationChangeListener<ReferentialIntegrityPluginCfg>,
                    ServerShutdownListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1103,9 +1098,7 @@
         } catch(InterruptedException e) {
           continue;
         } catch(Exception e) {
-          if (debugEnabled()) {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
         processLog();
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java
index 7bb03ef..3c41411 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java
@@ -56,8 +56,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.extensions.PasswordModifyExtendedOperation;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.types.*;
@@ -455,7 +454,7 @@
   /**
    * Debug tracer object to log debugging information.
    */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Password Modify Extended Operation OID.
@@ -699,9 +698,9 @@
     {
       if (authDN.equals(sambaAdminDN))
       {
-        if (DebugLogger.debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("This operation will be skipped because"
+          logger.trace("This operation will be skipped because"
               + " it was performed by Samba admin user: " + sambaAdminDN);
         }
         return PluginResult.PostOperation.continueOperationProcessing();
@@ -715,9 +714,9 @@
     if (dn == null)
     {
       // The attachment is missing which should never happen.
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("SambaPasswordPlugin: missing DN attachment");
+        logger.trace("SambaPasswordPlugin: missing DN attachment");
       }
       return PluginResult.PostOperation.continueOperationProcessing();
     }
@@ -726,9 +725,9 @@
         PasswordModifyExtendedOperation.CLEAR_PWD_ATTACHMENT).toString();
     if (password == null)
     {
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("SambaPasswordPlugin: skipping syncing "
+        logger.trace("SambaPasswordPlugin: skipping syncing "
             + "pre-encoded password");
       }
       return PluginResult.PostOperation.continueOperationProcessing();
@@ -744,9 +743,9 @@
       final Entry entry = DirectoryServer.getEntry(dn);
       if (!isSynchronizable(entry))
       {
-        if (DebugLogger.debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("The entry is not Samba object.");
+          logger.trace("The entry is not Samba object.");
         }
         return PluginResult.PostOperation.continueOperationProcessing();
       }
@@ -780,9 +779,9 @@
       final ModifyOperation modifyOperation = connection.processModify(dn,
           modifications, controls);
 
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(modifyOperation.getResultCode().toString());
+        logger.trace(modifyOperation.getResultCode().toString());
       }
     }
     catch (final DirectoryException e)
@@ -792,9 +791,9 @@
        * This should never happen as we are processing the post-operation which
        * succeeded so the entry has to exist if we have reached this point.
        */
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.WARNING, e);
+        logger.traceException(e);
       }
     }
 
@@ -831,9 +830,9 @@
     // Skip synchronization operations.
     if (modifyOperation.isSynchronizationOperation())
     {
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Synchronization operation. Skipping.");
+        logger.trace("Synchronization operation. Skipping.");
       }
       return PluginResult.PreOperation.continueOperationProcessing();
     }
@@ -849,9 +848,9 @@
     {
       if (authDN.equals(sambaAdminDN))
       {
-        if (DebugLogger.debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("This operation will be skipped because"
+          logger.trace("This operation will be skipped because"
               + " it was performed by Samba admin user: " + sambaAdminDN);
         }
         return PluginResult.PreOperation.continueOperationProcessing();
@@ -864,9 +863,9 @@
      */
     if (!isSynchronizable(modifyOperation.getCurrentEntry()))
     {
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Skipping '" + modifyOperation.getEntryDN().toString()
+        logger.trace("Skipping '" + modifyOperation.getEntryDN().toString()
             + "' because it does not have Samba object class.");
       }
       return PluginResult.PreOperation.continueOperationProcessing();
@@ -1004,9 +1003,9 @@
     catch (final Exception e)
     {
       ERR_PLUGIN_SAMBA_SYNC_ENCODING.get(e.getMessage());
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugError(e.getMessage(), e);
+        logger.trace(e.getMessage(), e);
       }
       modifications = null;
     }
@@ -1074,9 +1073,9 @@
     catch (final DirectoryException e)
     {
       ERR_PLUGIN_SAMBA_SYNC_MODIFICATION_PROCESSING.get(e.getMessage());
-      if (DebugLogger.debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugError(e.getMessage());
+        logger.trace(e.getMessage());
       }
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java
index 33db1ce..e139ab0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java
@@ -41,7 +41,7 @@
 import org.opends.server.api.plugin.PluginResult.PreOperation;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.schema.SchemaConstants;
@@ -49,7 +49,6 @@
 import org.opends.server.types.operation.*;
 
 import static org.opends.messages.PluginMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -70,7 +69,7 @@
   /**
    * The debug log tracer that will be used for this plugin.
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -334,10 +333,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       LocalizableMessage message =
           ERR_PLUGIN_UNIQUEATTR_INTERNAL_ERROR.get(
@@ -572,10 +568,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       LocalizableMessage message = ERR_PLUGIN_UNIQUEATTR_INTERNAL_ERROR_SYNC.get(
                             operation.getConnectionID(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStack.java b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStack.java
index 41891aa..dab4953 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStack.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStack.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.plugins.profiler;
 
@@ -31,9 +32,7 @@
 
 import org.opends.server.protocols.asn1.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 /**
@@ -42,10 +41,7 @@
  */
 public class ProfileStack
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -292,10 +288,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
index bb885e2..e735645 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.plugins.profiler;
 
@@ -30,9 +31,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 /**
@@ -45,10 +44,7 @@
 public class ProfileStackFrame
        implements Comparable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -328,10 +324,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
index ade166f..9c2cfcc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
@@ -48,9 +48,7 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.TimeThread;
 
-import org.opends.server.types.DebugLogLevel;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.ErrorLogger;
 import static org.opends.messages.PluginMessages.*;
 
@@ -71,10 +69,7 @@
        extends DirectoryServerPlugin<ProfilerPluginCfg>
        implements ConfigurationChangeListener<ProfilerPluginCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The value to use for the profiler action when no action is necessary.
@@ -203,10 +198,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA.
               get(String.valueOf(configEntryDN), filename,
@@ -376,10 +368,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               messages.add(ERR_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA.get(
                       String.valueOf(configEntryDN),
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerThread.java b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
index 8d542e4..3549acb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.plugins.profiler;
 
@@ -35,9 +36,7 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.protocols.asn1.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -50,10 +49,7 @@
 public class ProfilerThread
        extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -173,10 +169,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
       }
@@ -205,10 +198,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java b/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java
index b4083c1..bf5490d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java
@@ -44,10 +44,9 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryConfig;
 import org.opends.server.types.DN;
 import org.opends.server.types.ExistingFileBehavior;
@@ -68,7 +67,6 @@
 
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -88,7 +86,7 @@
   /**
    * The debug log tracer for this class.
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -291,9 +289,9 @@
           }
           else
           {
-            if (!alreadyWarn && debugEnabled())
+            if (!alreadyWarn && logger.isTraceEnabled())
             {
-              TRACER.debugInfo("LDIF connection handler directory " +
+              logger.trace("LDIF connection handler directory " +
                                dir.getAbsolutePath() +
                                " doesn't exist or isn't a directory");
               alreadyWarn = true;
@@ -313,20 +311,14 @@
               }
               catch (InterruptedException ie)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-                }
+                logger.traceException(ie);
               }
             }
           }
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -346,9 +338,9 @@
    */
   private void processLDIFFile(File ldifFile)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Beginning processing on LDIF file " +
+      logger.trace("Beginning processing on LDIF file " +
                        ldifFile.getAbsolutePath());
     }
 
@@ -379,9 +371,9 @@
 
     LDIFExportConfig exportConfig =
          new LDIFExportConfig(outputPath, ExistingFileBehavior.APPEND);
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Creating applied file " + outputPath);
+      logger.trace("Creating applied file " + outputPath);
     }
 
 
@@ -399,18 +391,15 @@
         try
         {
           changeRecord = reader.readChangeRecord(false);
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Read change record entry " +
+            logger.trace("Read change record entry " +
                              String.valueOf(changeRecord));
           }
         }
         catch (LDIFException le)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, le);
-          }
+          logger.traceException(le);
 
           errorEncountered = true;
           if (le.canContinueReading())
@@ -468,9 +457,9 @@
         }
         else
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Result Code:  " +
+            logger.trace("Result Code:  " +
                              operation.getResultCode().toString());
           }
 
@@ -509,10 +498,7 @@
     }
     catch (IOException ioe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
-      }
+      logger.traceException(ioe);
 
       fullyProcessed = false;
       LocalizableMessage m = ERR_LDIF_CONNHANDLER_IO_ERROR.get(inputPath,
@@ -560,19 +546,16 @@
 
       try
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Renaming source file to " + renamedPath);
+          logger.trace("Renaming source file to " + renamedPath);
         }
 
         ldifFile.renameTo(new File(renamedPath));
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage m = ERR_LDIF_CONNHANDLER_CANNOT_RENAME.get(inputPath,
                          renamedPath, getExceptionMessage(e));
@@ -585,19 +568,16 @@
     {
       try
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Deleting source file");
+          logger.trace("Deleting source file");
         }
 
         ldifFile.delete();
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage m = ERR_LDIF_CONNHANDLER_CANNOT_DELETE.get(inputPath,
                          getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
index e3563b1..d90f6ee 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
@@ -36,16 +36,14 @@
 import org.forgerock.opendj.ldap.ByteSequenceReader;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * An ASN.1 reader that reads from a {@link ByteSequenceReader}.
  */
 final class ASN1ByteSequenceReader implements ASN1Reader
 {
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private int state = ELEMENT_READ_STATE_NEED_TYPE;
   private byte peekType = 0;
@@ -488,9 +486,9 @@
       throw new ASN1Exception(message);
     }
 
-    if(reader.remaining() > 0 && debugEnabled())
+    if(reader.remaining() > 0 && logger.isTraceEnabled())
     {
-      TRACER.debugWarning("Ignoring %d unused trailing bytes in " +
+      logger.trace("Ignoring %d unused trailing bytes in " +
           "ASN.1 SEQUENCE", reader.remaining());
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1InputStreamReader.java b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1InputStreamReader.java
index 4fb439c..12703fc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1InputStreamReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1InputStreamReader.java
@@ -27,7 +27,6 @@
 package org.opends.server.protocols.asn1;
 
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 
 import java.io.IOException;
@@ -35,10 +34,9 @@
 import java.util.LinkedList;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.SizeLimitInputStream;
 
 /**
@@ -47,7 +45,7 @@
 final class ASN1InputStreamReader implements ASN1Reader
 {
 
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private int state = ELEMENT_READ_STATE_NEED_TYPE;
   private byte peekType = 0;
@@ -401,9 +399,9 @@
         throw new ASN1Exception(message);
       }
 
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("READ ASN.1 BOOLEAN(type=0x%x, length=%d, value=%s)",
                 peekType, peekLength, String.valueOf(readByte != 0x00)));
       }
@@ -496,9 +494,9 @@
           intValue = (intValue << 8) | (readByte & 0xFF);
         }
 
-        if(debugEnabled())
+        if(logger.isTraceEnabled())
         {
-          TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+          logger.trace(
               String.format("READ ASN.1 INTEGER(type=0x%x, length=%d, " +
                   "value=%d)", peekType, peekLength, intValue));
         }
@@ -531,9 +529,9 @@
       throw new ASN1Exception(message);
     }
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("READ ASN.1 NULL(type=0x%x, length=%d)",
               peekType, peekLength));
     }
@@ -573,9 +571,9 @@
         bytesNeeded -= bytesRead;
       }
 
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("READ ASN.1 OCTETSTRING(type=0x%x, length=%d)",
                 peekType, peekLength));
       }
@@ -653,17 +651,14 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       str = new String(buffer, 0, peekLength);
     }
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("READ ASN.1 OCTETSTRING(type=0x%x, length=%d, " +
               "value=%s)", peekType, peekLength, str));
     }
@@ -702,9 +697,9 @@
         bytesNeeded -= bytesRead;
       }
 
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("READ ASN.1 OCTETSTRING(type=0x%x, length=%d)",
                 peekType, peekLength));
       }
@@ -730,9 +725,9 @@
     SizeLimitInputStream subStream =
         new SizeLimitInputStream(in, peekLength);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("READ ASN.1 SEQUENCE(type=0x%x, length=%d)",
               peekType, peekLength));
     }
@@ -779,9 +774,9 @@
     SizeLimitInputStream subSq = (SizeLimitInputStream)in;
     if(subSq.getSizeLimit() - subSq.getBytesRead() > 0)
     {
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugWarning("Ignoring %d unused trailing bytes in " +
+        logger.trace("Ignoring %d unused trailing bytes in " +
             "ASN.1 SEQUENCE", subSq.getSizeLimit() - subSq.getBytesRead());
       }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1OutputStreamWriter.java b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1OutputStreamWriter.java
index 3e7eb97..af75c8f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1OutputStreamWriter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/asn1/ASN1OutputStreamWriter.java
@@ -35,18 +35,15 @@
 
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.StaticUtils;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * An ASN1Writer implementation that outputs to an outputstream.
  */
 final class ASN1OutputStreamWriter implements ASN1Writer
 {
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final OutputStream rootStream;
   private final ArrayList<ByteSequenceOutputStream> streamStack;
@@ -94,9 +91,9 @@
     {
       writeLength(1);
       out.write((byte) (intValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 1, intValue));
       }
@@ -107,9 +104,9 @@
       writeLength(2);
       out.write((byte) ((intValue >> 8) & 0xFF));
       out.write((byte) (intValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 2, intValue));
       }
@@ -121,9 +118,9 @@
       out.write((byte) ((intValue >> 16) & 0xFF));
       out.write((byte) ((intValue >>  8) & 0xFF));
       out.write((byte) (intValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 3, intValue));
       }
@@ -135,9 +132,9 @@
       out.write((byte) ((intValue >> 16) & 0xFF));
       out.write((byte) ((intValue >>  8) & 0xFF));
       out.write((byte) (intValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 4, intValue));
       }
@@ -165,9 +162,9 @@
     {
       writeLength(1);
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 1, longValue));
       }
@@ -179,9 +176,9 @@
       writeLength(2);
       out.write((byte) ((longValue >> 8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 2, longValue));
       }
@@ -194,9 +191,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 3, longValue));
       }
@@ -210,9 +207,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 4, longValue));
       }
@@ -227,9 +224,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 5, longValue));
       }
@@ -245,9 +242,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 6, longValue));
       }
@@ -264,9 +261,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 7, longValue));
       }
@@ -282,9 +279,9 @@
       out.write((byte) ((longValue >> 16) & 0xFF));
       out.write((byte) ((longValue >>  8) & 0xFF));
       out.write((byte) (longValue & 0xFF));
-      if(debugEnabled())
+      if(logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
             String.format("WRITE ASN.1 INTEGER(type=0x%x, length=%d, value=%d)",
                 type, 8, longValue));
       }
@@ -317,9 +314,9 @@
     writeLength(1);
     out.write(booleanValue ? BOOLEAN_VALUE_TRUE : BOOLEAN_VALUE_FALSE);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 BOOLEAN(type=0x%x, length=%d, value=%s)",
               type, 1, String.valueOf(booleanValue)));
     }
@@ -334,9 +331,9 @@
     out.write(type);
     writeLength(0);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 NULL(type=0x%x, length=%d)",
               type, 0));
     }
@@ -362,9 +359,9 @@
     writeLength(length);
     out.write(value, offset, length);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 OCTETSTRING(type=0x%x, length=%d)",
               type, length));
     }
@@ -397,9 +394,9 @@
     writeLength(bytes.length);
     out.write(bytes);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 OCTETSTRING(type=0x%x, length=%d, " +
               "value=%s)", type, bytes.length, value));
     }
@@ -423,9 +420,9 @@
     writeLength(value.length());
     value.copyTo(out);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 OCTETSTRING(type=0x%x, length=%d)",
               type, value.length()));
     }
@@ -491,9 +488,9 @@
       out = childStream;
     }
 /*
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 START SEQUENCE(type=0x%x)",
               type));
     }
@@ -534,9 +531,9 @@
     writeLength(childStream.length());
     childStream.writeTo(parentStream);
 
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+      logger.trace(
           String.format("WRITE ASN.1 END SEQUENCE(length=%d)",
               childStream.length()));
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/http/CollectClientConnectionsFilter.java b/opendj3-server-dev/src/server/org/opends/server/protocols/http/CollectClientConnectionsFilter.java
index e407a51..aa4bd41 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/http/CollectClientConnectionsFilter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/http/CollectClientConnectionsFilter.java
@@ -50,16 +50,14 @@
 import org.forgerock.opendj.rest2ldap.servlet.Rest2LDAPContextFactory;
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.std.server.ConnectionHandlerCfg;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.SchemaConstants;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.util.Base64;
 
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -187,7 +185,7 @@
   static final String HTTP_BASIC_AUTH_HEADER = "Authorization";
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The connection handler that created this servlet filter. */
   private final HTTPConnectionHandler connectionHandler;
@@ -352,10 +350,7 @@
     ResourceException ex = Rest2LDAP.asResourceException(e);
     try
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       sendErrorReponse(ctx.response, ctx.prettyPrint, ex);
 
@@ -503,10 +498,7 @@
     catch (IOException ignore)
     {
       // nothing else we can do in this case
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ignore);
-      }
+      logger.traceException(ignore);
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPClientConnection.java b/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPClientConnection.java
index 413ae61..13bd4d7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPClientConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPClientConnection.java
@@ -28,8 +28,6 @@
 import static org.forgerock.opendj.adapter.server2x.Converters.*;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
@@ -59,7 +57,7 @@
 import org.opends.server.core.SearchOperation;
 import org.opends.server.loggers.HTTPAccessLogger;
 import org.opends.server.loggers.HTTPRequestInfo;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.AddResponseProtocolOp;
 import org.opends.server.protocols.ldap.BindResponseProtocolOp;
 import org.opends.server.protocols.ldap.CompareResponseProtocolOp;
@@ -75,7 +73,6 @@
 import org.opends.server.types.CancelRequest;
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.IntermediateResponse;
@@ -128,7 +125,7 @@
   }
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Official servlet property giving access to the SSF (Security Strength
@@ -723,10 +720,7 @@
       catch (IllegalArgumentException ignored)
       {
         // We cannot do much about it. Just log it.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
-        }
+        logger.traceException(ignored);
       }
     }
     return 0;
@@ -755,10 +749,7 @@
           }
           catch (Exception e)
           { // make sure all operations are cancelled, no matter what
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
 
@@ -766,10 +757,7 @@
       }
       catch (Exception e)
       { // TODO JNR should I keep this catch?
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java b/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java
index 2fe3bfb..f95c7d7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java
@@ -35,6 +35,9 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import javax.net.ssl.KeyManager;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
@@ -67,7 +70,6 @@
 import org.glassfish.grizzly.ssl.SSLEngineConfigurator;
 import org.glassfish.grizzly.strategies.SameThreadIOStrategy;
 import org.glassfish.grizzly.utils.Charsets;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.ConnectionHandlerCfg;
 import org.opends.server.admin.std.server.HTTPConnectionHandlerCfg;
@@ -77,7 +79,6 @@
 import org.opends.server.extensions.NullKeyManagerProvider;
 import org.opends.server.extensions.NullTrustManagerProvider;
 import org.opends.server.loggers.HTTPAccessLogger;
-import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.monitors.ClientConnectionMonitorProvider;
 import org.opends.server.types.*;
 import org.opends.server.util.SelectableCertificateKeyManager;
@@ -86,7 +87,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -102,7 +102,7 @@
 {
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Default friendly name for this connection handler. */
   private static final String DEFAULT_FRIENDLY_NAME = "HTTP Connection Handler";
@@ -230,10 +230,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       messages.add(e.getMessageObject());
       return new ConfigChangeResult(e.getResultCode(), adminActionRequired,
           messages);
@@ -495,10 +492,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new InitializationException(e.getMessageObject());
     }
 
@@ -563,10 +557,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           unacceptableReasons.add(e.getMessageObject());
           return false;
@@ -607,10 +598,7 @@
       }
       catch (IOException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         return ERR_CONNHANDLER_CANNOT_BIND.get("HTTP", String
             .valueOf(configEntryDN), a.getHostAddress(), listenPort,
             getExceptionMessage(e));
@@ -736,10 +724,7 @@
         cleanUpHttpServer();
 
         // error + alert about the horked config
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(ERR_CONNHANDLER_CANNOT_ACCEPT_CONNECTION.get(friendlyName,
             String.valueOf(currentConfig.dn()), getExceptionMessage(e)));
@@ -787,9 +772,9 @@
     // register servlet as default servlet and also able to serve REST requests
     createAndRegisterServlet("OpenDJ Rest2LDAP servlet", "", "/*");
 
-    TRACER.debugInfo("Starting HTTP server...");
+    logger.trace("Starting HTTP server...");
     this.httpServer.start();
-    TRACER.debugInfo("HTTP server started");
+    logger.trace("HTTP server started");
     logError(NOTE_CONNHANDLER_STARTED_LISTENING.get(handlerName));
   }
 
@@ -944,10 +929,10 @@
   {
     if (this.httpServer != null)
     {
-      TRACER.debugInfo("Stopping HTTP server...");
+      logger.trace("Stopping HTTP server...");
       this.httpServer.shutdownNow();
       cleanUpHttpServer();
-      TRACER.debugInfo("HTTP server stopped");
+      logger.trace("HTTP server stopped");
       logError(NOTE_CONNHANDLER_STOPPED_LISTENING.get(handlerName));
     }
   }
@@ -1020,10 +1005,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       ResultCode resCode = DirectoryServer.getServerErrorResultCode();
       LocalizableMessage message =
           ERR_CONNHANDLER_SSL_CANNOT_INITIALIZE.get(getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java b/opendj3-server-dev/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
index 17c21ea..f214de7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
@@ -27,8 +27,6 @@
 
 import static org.forgerock.opendj.adapter.server2x.Converters.*;
 import static org.forgerock.opendj.ldap.ByteString.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.LinkedHashSet;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -79,7 +77,7 @@
 import org.opends.server.core.SearchOperationBasis;
 import org.opends.server.core.UnbindOperation;
 import org.opends.server.core.UnbindOperationBasis;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.AbandonRequestProtocolOp;
 import org.opends.server.protocols.ldap.AddRequestProtocolOp;
 import org.opends.server.protocols.ldap.BindRequestProtocolOp;
@@ -94,7 +92,6 @@
 import org.opends.server.protocols.ldap.UnbindRequestProtocolOp;
 import org.opends.server.types.AuthenticationInfo;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Operation;
 
@@ -109,7 +106,7 @@
 {
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The HTTP client connection being "adapted". */
   private final HTTPClientConnection clientConnection;
@@ -173,10 +170,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       clientConnection.removeOperationInProgress(operation.getMessageID());
       // TODO JNR add error message??
       futureResult.handleErrorResult(ErrorResultException.newErrorResult(
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalClientConnection.java b/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
index c76f8ff..20b248f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
@@ -36,7 +36,7 @@
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.core.*;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.util.AddChangeRecordEntry;
@@ -47,7 +47,6 @@
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -63,10 +62,7 @@
 public final class InternalClientConnection
        extends ClientConnection
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The protocol version string that will be used for internal bind
@@ -194,10 +190,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       logError(ERR_INTERNAL_CANNOT_DECODE_DN.get(
           fullDNString, getExceptionMessage(de)));
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
index 336a58a..d1123b0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
@@ -22,12 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.protocols.jmx;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.io.IOException;
 
@@ -55,10 +54,7 @@
 public class DirectoryRMIClientSocketFactory implements
     RMIClientSocketFactory, Serializable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -291,9 +287,9 @@
   {
     if (sslSocketFactory == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("sslSocketFactory is null, get a new one");
+        logger.trace("sslSocketFactory is null, get a new one");
       }
 
       // socket factory not yet initialized
@@ -316,10 +312,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           tms = null;
         }
 
@@ -346,10 +339,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         throw new IOException("Unable to initialize SSL context : "
             + e.getMessage());
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
index e0b7541..79d6174 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
@@ -22,11 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.protocols.jmx;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -49,10 +49,7 @@
 public class DirectoryRMIServerSocketFactory implements
     RMIServerSocketFactory
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    *  The SSL socket factory associated with the connector.
@@ -122,9 +119,9 @@
       public Socket accept() throws IOException
       {
         Socket socket = super.accept();
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("host/port: %s/%d",
+          logger.trace("host/port: %s/%d",
                        socket.getInetAddress().getHostName(), socket.getPort());
         }
         SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket(
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
index 845608d..a1222a0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
@@ -39,14 +39,13 @@
 import org.opends.server.api.*;
 import org.opends.server.core.*;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalSearchListener;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 
 /**
@@ -57,10 +56,7 @@
 public class JmxClientConnection
        extends ClientConnection implements NotificationListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The message ID counter to use for jmx connections. */
   private AtomicInteger nextMessageID;
@@ -979,10 +975,7 @@
    catch (Exception e)
     {
       // TODO print a message ?
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     // Call postDisconnectPlugins
@@ -995,10 +988,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
index b7aa3a3..bdf923e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
@@ -39,10 +39,9 @@
 import org.opends.messages.CoreMessages;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ProtocolMessages.*;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 
@@ -54,10 +53,7 @@
  */
 public class RmiAuthenticator implements JMXAuthenticator
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
     /**
@@ -141,27 +137,27 @@
     // client
     if (authcID == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("User name is Null");
+        logger.trace("User name is Null");
       }
       SecurityException se = new SecurityException();
       throw se;
     }
     if (password == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("User password is Null ");
+        logger.trace("User password is Null ");
       }
 
       SecurityException se = new SecurityException();
       throw se;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose("UserName = %s", authcID);
+      logger.trace("UserName = %s", authcID);
     }
 
     //
@@ -177,10 +173,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       SecurityException se = new SecurityException(e.getMessage());
       throw se;
     }
@@ -199,9 +192,9 @@
           pluginResult.sendDisconnectNotification(),
           pluginResult.getErrorMessage());
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("Disconnect result from post connect plugins: " +
+        logger.trace("Disconnect result from post connect plugins: " +
             "%s: %s ", pluginResult.getDisconnectReason(),
             pluginResult.getErrorMessage());
       }
@@ -278,9 +271,9 @@
     bindOp.run();
     if (bindOp.getResultCode() == ResultCode.SUCCESS)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("User is authenticated");
+        logger.trace("User is authenticated");
       }
 
       authInfo = bindOp.getAuthenticationInfo();
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiConnector.java b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiConnector.java
index 1e5caa9..cb435ac 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiConnector.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/RmiConnector.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 package org.opends.server.protocols.jmx;
 
@@ -47,9 +47,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.NullKeyManagerProvider;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.util.SelectableCertificateKeyManager;
 
@@ -70,10 +68,7 @@
  */
 public class RmiConnector
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -181,18 +176,15 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new RuntimeException("Error while starting the RMI module : "
           + e.getMessage());
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose("RMI module started");
+      logger.trace("RMI module started");
     }
   }
 
@@ -210,9 +202,9 @@
 
     //
     // create our local RMI registry if it does not exist already
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose("start or reach an RMI registry on port %d",
+      logger.trace("start or reach an RMI registry on port %d",
                           registryPort);
     }
     try
@@ -229,9 +221,9 @@
     {
       //
       // is the registry already created ?
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("cannot create the RMI registry -> already done ?");
+        logger.trace("cannot create the RMI registry -> already done ?");
       }
       try
       {
@@ -246,15 +238,15 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           //
           // no 'valid' registry found on the specified port
-          TRACER.debugError("exception thrown while pinging the RMI registry");
+          logger.trace("exception thrown while pinging the RMI registry");
 
           //
           // throw the original exception
-          TRACER.debugCaught(DebugLogLevel.ERROR, re);
+          logger.traceException(re);
         }
         throw re;
       }
@@ -262,9 +254,9 @@
       //
       // here the registry is ok even though
       // it was not created by this call
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning("RMI was registry already started");
+        logger.trace("RMI was registry already started");
       }
     }
   }
@@ -296,9 +288,9 @@
       DirectoryRMIServerSocketFactory rmiServerSockeyFactory = null;
       if (jmxConnectionHandler.isUseSSL())
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("SSL connection");
+          logger.trace("SSL connection");
         }
 
         // ---------------------
@@ -355,17 +347,17 @@
       }
       else
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("UNSECURE CONNECTION");
+          logger.trace("UNSECURE CONNECTION");
         }
       }
 
       //
       // specify the rmi JMX authenticator to be used
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("Add RmiAuthenticator into JMX map");
+        logger.trace("Add RmiAuthenticator into JMX map");
       }
       rmiAuthenticator = new RmiAuthenticator(jmxConnectionHandler);
 
@@ -381,9 +373,9 @@
 
       //
       // Create and start the connector
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("Create and start the JMX RMI connector");
+        logger.trace("Create and start the JMX RMI connector");
       }
       OpendsRMIJRMPServerImpl opendsRmiConnectorServer =
           new OpendsRMIJRMPServerImpl(jmxConnectionHandler.getRmiPort(),
@@ -399,18 +391,15 @@
       mbs.registerMBean(jmxRmiConnectorNoClientCertificate, name);
       rmiVersion = opendsRmiConnectorServer.getVersion();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("JMX RMI connector Started");
+        logger.trace("JMX RMI connector Started");
       }
 
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw e;
     }
 
@@ -438,7 +427,7 @@
     }
     catch (Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
 
     jmxRmiConnectorNoClientCertificate = null;
@@ -469,10 +458,7 @@
     catch (Exception e)
     {
       // TODO Log an error message
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     if (stopRegistry)
@@ -487,10 +473,7 @@
       catch (IOException e)
       {
         // TODO Log an error message
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
       registry = null;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
index 5c3ea5e..655f2d9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.protocols.ldap;
 
@@ -29,8 +30,7 @@
 
 import org.opends.server.protocols.asn1.ASN1Writer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -45,10 +45,7 @@
 public class AbandonRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The message ID of the operation to abandon.
   private int idToAbandon;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
index f8c6c42..d02e210 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
@@ -31,13 +31,12 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.RawAttribute;
 import org.opends.server.util.Base64;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -49,10 +48,7 @@
 public class AddRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of attributes for this add request. */
   private List<RawAttribute> attributes;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
index 82e1235..1f5a03f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class AddResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The matched DN for this response.
   private DN matchedDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
index 9ce7349..53e4492 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
@@ -33,8 +33,7 @@
 import org.opends.server.types.AuthenticationType;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -47,10 +46,7 @@
 public class BindRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The bind DN for this request.
   private ByteString dn;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
index 50c85be..0f25325 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
@@ -36,8 +36,7 @@
 import org.opends.server.types.DN;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -51,10 +50,7 @@
 public class BindResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The server SASL credentials for this response.
   private ByteString serverSASLCredentials;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
index 17ba68c..83f63e0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
@@ -32,8 +32,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -46,10 +45,7 @@
 public class CompareRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The assertion value for this compare request.
   private ByteString assertionValue;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
index 34fa0a0..30447e9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class CompareResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The matched DN for this response.
   private DN matchedDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
index f90a7ed..d4540ec 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
@@ -31,8 +31,7 @@
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -46,10 +45,7 @@
 public class DeleteRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The DN for this delete request.
   private ByteString dn;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
index 8c091eb..e3496dc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class DeleteResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
index 8f7aa42..f11c9b7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
@@ -32,8 +32,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -46,10 +45,7 @@
 public class ExtendedRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The value for this extended request.
   private ByteString value;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
index 2d1ee55..fe2fb47 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
@@ -36,8 +36,7 @@
 import org.opends.server.types.DN;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -51,10 +50,7 @@
 public class ExtendedResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The value for this extended response.
   private ByteString value;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
index d1cb241..e0548d5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
@@ -32,8 +32,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -46,10 +45,7 @@
 public class IntermediateResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The value for this intermediate response.
   private ByteString value;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index 036f48e..cd1de10 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -33,7 +33,6 @@
 import static org.opends.server.core.DirectoryServer.*;
 import static org.opends.server.loggers.AccessLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -64,7 +63,7 @@
 import org.opends.server.extensions.RedirectingByteChannel;
 import org.opends.server.extensions.TLSByteChannel;
 import org.opends.server.extensions.TLSCapableConnection;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1ByteChannelReader;
 import org.opends.server.protocols.asn1.ASN1Reader;
@@ -121,10 +120,7 @@
       {
         // In general, we don't care about any exception that might be
         // thrown here.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       try
@@ -135,10 +131,7 @@
       {
         // In general, we don't care about any exception that might be
         // thrown here.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -311,7 +304,7 @@
 
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Thread local ASN1Writer and buffer.
@@ -996,9 +989,9 @@
       message.write(holder.writer);
       holder.buffer.copyTo(saslChannel);
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+        logger.trace(
           message.toString());
       }
 
@@ -1009,10 +1002,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // FIXME -- Log a message or something
       disconnect(DisconnectReason.SERVER_ERROR, false, null);
@@ -1157,10 +1147,7 @@
       {
         // NYI -- Log a message indicating that we couldn't send the
         // notice of disconnection.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -1183,10 +1170,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1279,10 +1263,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operationsInProgress.remove(messageID);
       lastCompletionTime.set(TimeThread.getTime());
@@ -1291,10 +1272,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
         WARN_LDAP_CLIENT_CANNOT_ENQUEUE.get(getExceptionMessage(e));
@@ -1416,10 +1394,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
         }
 
@@ -1438,10 +1413,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1490,10 +1462,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
             }
           }
 
@@ -1514,10 +1483,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1544,10 +1510,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -1622,10 +1585,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (asn1Reader.hasRemainingData() || (e instanceof SSLException))
       {
@@ -1764,10 +1724,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage msg =
           ERR_LDAP_DISCONNECT_DUE_TO_PROCESSING_FAILURE.get(message
@@ -1820,10 +1777,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // Don't send an error response since abandon operations
       // don't have a response.
@@ -1877,10 +1831,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       AddResponseProtocolOp responseOp =
           new AddResponseProtocolOp(de.getResultCode().getIntValue(),
@@ -2002,10 +1953,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       BindResponseProtocolOp responseOp =
           new BindResponseProtocolOp(de.getResultCode().getIntValue(),
@@ -2076,10 +2024,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       CompareResponseProtocolOp responseOp =
           new CompareResponseProtocolOp(de.getResultCode()
@@ -2139,10 +2084,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       DeleteResponseProtocolOp responseOp =
           new DeleteResponseProtocolOp(
@@ -2207,10 +2149,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       ExtendedResponseProtocolOp responseOp =
           new ExtendedResponseProtocolOp(de.getResultCode()
@@ -2270,10 +2209,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       ModifyResponseProtocolOp responseOp =
           new ModifyResponseProtocolOp(
@@ -2335,10 +2271,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       ModifyDNResponseProtocolOp responseOp =
           new ModifyDNResponseProtocolOp(de.getResultCode()
@@ -2401,10 +2334,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       SearchResultDoneProtocolOp responseOp =
           new SearchResultDoneProtocolOp(de.getResultCode()
@@ -2563,10 +2493,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       unavailableReason.append(ERR_LDAP_TLS_CANNOT_CREATE_TLS_PROVIDER
           .get(stackTraceToSingleLineString(de)));
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
index e94515c..1541337 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -61,7 +60,7 @@
 import org.opends.server.extensions.NullKeyManagerProvider;
 import org.opends.server.extensions.NullTrustManagerProvider;
 import org.opends.server.extensions.TLSByteChannel;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.monitors.ClientConnectionMonitorProvider;
 import org.opends.server.types.*;
 import org.opends.server.util.SelectableCertificateKeyManager;
@@ -110,13 +109,7 @@
 
     }
   }
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Default friendly name for the LDAP connection handler.
@@ -350,10 +343,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       messages.add(e.getMessageObject());
       return new ConfigChangeResult(e.getResultCode(), adminActionRequired,
           messages);
@@ -416,10 +406,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     for (LDAPRequestHandler requestHandler : requestHandlers)
@@ -692,10 +679,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_CONNHANDLER_OPEN_SELECTOR_FAILED.get(
           String.valueOf(config.dn()), stackTraceToSingleLineString(e));
@@ -716,10 +700,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       throw new InitializationException(e.getMessageObject());
     }
 
@@ -841,10 +822,7 @@
         }
         catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           unacceptableReasons.add(e.getMessageObject());
           return false;
@@ -885,10 +863,7 @@
       }
       catch (IOException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         return ERR_CONNHANDLER_CANNOT_BIND.get("LDAP", String
             .valueOf(configEntryDN), a.getHostAddress(), listenPort,
             getExceptionMessage(e));
@@ -1052,10 +1027,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             logError(ERR_CONNHANDLER_CANNOT_ACCEPT_CONNECTION.get(friendlyName,
                 String.valueOf(currentConfig.dn()), getExceptionMessage(e)));
@@ -1096,10 +1068,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // This is very bad because we failed outside the loop. The
         // only thing we can do here is log a message, send an alert,
@@ -1151,11 +1120,11 @@
       }
 
       if (selectorState == 0 && enabled && (!shutdownRequested)
-          && debugEnabled())
+          && logger.isTraceEnabled())
       {
         // Selected keys was non empty but select() returned 0.
         // Log warning and hope it blocks on the next select() call.
-        TRACER.debugWarning("Selector.select() returned 0. "
+        logger.trace("Selector.select() returned 0. "
             + "Selected Keys: %d, Interest Ops: %d, Ready Ops: %d ",
             selector.selectedKeys().size(), key.interestOps(),
             key.readyOps());
@@ -1189,10 +1158,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(ERR_LDAP_CONNHANDLER_CREATE_CHANNEL_FAILED.get(
             String.valueOf(currentConfig.dn()), a.getHostAddress(),
@@ -1285,10 +1251,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           INFO_CONNHANDLER_UNABLE_TO_REGISTER_CLIENT.get(clientConnection
@@ -1349,10 +1312,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         try
@@ -1361,19 +1321,13 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
   }
 
@@ -1450,10 +1404,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       ResultCode resCode = DirectoryServer.getServerErrorResultCode();
       LocalizableMessage message = ERR_CONNHANDLER_SSL_CANNOT_INITIALIZE
           .get(getExceptionMessage(e));
@@ -1503,10 +1454,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       ResultCode resCode = DirectoryServer.getServerErrorResultCode();
       LocalizableMessage message = ERR_CONNHANDLER_SSL_CANNOT_INITIALIZE
           .get(getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPFilter.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
index 92d5ef6..c10218d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
@@ -40,8 +40,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -55,10 +54,7 @@
 public class LDAPFilter
        extends RawFilter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of subAny elements for substring filters.
   private ArrayList<ByteString> subAnyElements;
@@ -301,19 +297,13 @@
     }
     catch (LDAPException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
 
       throw le;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_UNCAUGHT_EXCEPTION.get(
           filterString, String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPReader.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPReader.java
index ab200cb..c957081 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPReader.java
@@ -30,17 +30,13 @@
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.loggers.debug.DebugTracer;
 import org.forgerock.i18n.LocalizableMessage;
-
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
@@ -51,10 +47,7 @@
  */
 public class LDAPReader
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Decodes the elements from the provided ASN.1 reader as an LDAP message.
@@ -86,10 +79,7 @@
     }
     catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MESSAGE_DECODE_MESSAGE_ID.get(String.valueOf(e));
@@ -103,10 +93,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MESSAGE_DECODE_PROTOCOL_OP.get(String.valueOf(e));
@@ -123,10 +110,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MESSAGE_DECODE_CONTROLS.get(String.valueOf(e));
@@ -301,10 +285,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ABANDON_REQUEST_DECODE_ID.get(String.valueOf(e));
@@ -334,10 +315,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ADD_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -352,10 +330,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_ADD_REQUEST_DECODE_DN.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -376,10 +351,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ADD_REQUEST_DECODE_ATTRS.get(String.valueOf(e));
@@ -392,10 +364,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ADD_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -426,10 +395,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -442,10 +408,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -468,10 +431,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -490,10 +450,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -518,10 +475,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -534,10 +488,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -567,10 +518,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_BIND_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -584,10 +532,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_BIND_REQUEST_DECODE_VERSION.get(String.valueOf(e));
@@ -602,10 +547,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_BIND_REQUEST_DECODE_DN.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -619,10 +561,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_BIND_REQUEST_DECODE_CREDENTIALS.get(String.valueOf(e));
@@ -678,10 +617,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_BIND_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -718,10 +654,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -734,10 +667,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -760,10 +690,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -782,10 +709,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -815,10 +739,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -835,10 +756,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_BIND_RESULT_DECODE_SERVER_SASL_CREDENTIALS.
@@ -849,10 +767,7 @@
     }
     catch(ASN1Exception asn1e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, asn1e);
-      }
+      logger.traceException(asn1e);
     }
 
     try
@@ -861,10 +776,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -894,10 +806,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -912,10 +821,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_DN.get(String.valueOf(e));
@@ -928,10 +834,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_AVA.get(String.valueOf(e));
@@ -945,10 +848,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_TYPE.get(String.valueOf(e));
@@ -963,10 +863,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_VALUE.get(String.valueOf(e));
@@ -979,10 +876,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_AVA.get(String.valueOf(e));
@@ -995,10 +889,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_COMPARE_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1029,10 +920,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1045,10 +933,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -1071,10 +956,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -1093,10 +975,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -1121,10 +1000,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -1137,10 +1013,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1170,10 +1043,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_DELETE_REQUEST_DECODE_DN.get(String.valueOf(e));
@@ -1200,10 +1070,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1216,10 +1083,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -1242,10 +1106,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -1264,10 +1125,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -1292,10 +1150,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -1308,10 +1163,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1344,10 +1196,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_EXTENDED_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1362,10 +1211,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_EXTENDED_REQUEST_DECODE_OID.get(String.valueOf(e));
@@ -1383,10 +1229,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_EXTENDED_REQUEST_DECODE_VALUE.get(String.valueOf(e));
@@ -1399,10 +1242,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_EXTENDED_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1433,10 +1273,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1449,10 +1286,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -1475,10 +1309,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -1497,10 +1328,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -1529,10 +1357,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -1548,10 +1373,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_EXTENDED_RESULT_DECODE_OID.get(String.valueOf(e));
@@ -1567,10 +1389,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_EXTENDED_RESULT_DECODE_VALUE.get(String.valueOf(e));
@@ -1580,10 +1399,7 @@
     }
     catch(ASN1Exception asn1e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, asn1e);
-      }
+      logger.traceException(asn1e);
     }
 
     try
@@ -1592,10 +1408,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1627,10 +1440,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_INTERMEDIATE_RESPONSE_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1654,10 +1464,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_OID.get(
@@ -1674,10 +1481,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_VALUE.
@@ -1688,10 +1492,7 @@
     }
     catch(ASN1Exception asn1e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, asn1e);
-      }
+      logger.traceException(asn1e);
     }
 
     try
@@ -1700,10 +1501,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_INTERMEDIATE_RESPONSE_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1735,10 +1533,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_DN_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1753,10 +1548,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_DN_REQUEST_DECODE_DN.get(String.valueOf(e));
@@ -1771,10 +1563,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_RDN.get(String.valueOf(e));
@@ -1789,10 +1578,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_MODIFY_DN_REQUEST_DECODE_DELETE_OLD_RDN.get(
           String.valueOf(e));
@@ -1810,10 +1596,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_SUPERIOR.get(
           String.valueOf(e));
@@ -1826,10 +1609,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_DN_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -1861,10 +1641,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -1877,10 +1654,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -1903,10 +1677,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -1925,10 +1696,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -1953,10 +1721,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -1969,10 +1734,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2003,10 +1765,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2020,10 +1779,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_REQUEST_DECODE_DN.get(String.valueOf(e));
@@ -2045,10 +1801,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_REQUEST_DECODE_MODS.get(String.valueOf(e));
@@ -2061,10 +1814,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFY_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2096,10 +1846,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2112,10 +1859,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -2138,10 +1882,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -2160,10 +1901,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -2188,10 +1926,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -2204,10 +1939,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2238,10 +1970,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2255,10 +1984,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_BASE.get(String.valueOf(e));
@@ -2296,10 +2022,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_SCOPE.get(String.valueOf(e));
@@ -2337,10 +2060,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_DEREF.get(String.valueOf(e));
@@ -2355,10 +2075,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_SIZE_LIMIT.get(String.valueOf(e));
@@ -2373,10 +2090,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_TIME_LIMIT.get(String.valueOf(e));
@@ -2391,10 +2105,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_TYPES_ONLY.get(String.valueOf(e));
@@ -2408,10 +2119,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_FILTER.get(String.valueOf(e));
@@ -2432,10 +2140,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_ATTRIBUTES.get(String.valueOf(e));
@@ -2448,10 +2153,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REQUEST_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2484,10 +2186,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2500,10 +2199,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_RESULT_CODE.get(String.valueOf(e));
@@ -2526,10 +2222,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_MATCHED_DN.get(String.valueOf(e));
@@ -2548,10 +2241,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_ERROR_MESSAGE.get(String.valueOf(e));
@@ -2576,10 +2266,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_RESULT_DECODE_REFERRALS.get(String.valueOf(e));
@@ -2592,10 +2279,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_RESULT_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2627,10 +2311,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_ENTRY_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2645,10 +2326,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_SEARCH_ENTRY_DECODE_DN.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2669,10 +2347,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_ENTRY_DECODE_ATTRS.get(String.valueOf(e));
@@ -2685,10 +2360,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_ENTRY_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2721,10 +2393,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REFERENCE_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2744,10 +2413,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REFERENCE_DECODE_URLS.get(String.valueOf(e));
@@ -2760,10 +2426,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_SEARCH_REFERENCE_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -2794,10 +2457,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_UNBIND_DECODE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2857,10 +2517,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_CONTROL_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2874,10 +2531,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_CONTROL_DECODE_OID.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
@@ -2896,10 +2550,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           LocalizableMessage message =
               ERR_LDAP_CONTROL_DECODE_CRITICALITY.get(String.valueOf(e2));
@@ -2915,10 +2566,7 @@
         }
         catch (Exception e2)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-          }
+          logger.traceException(e2);
 
           LocalizableMessage message =
               ERR_LDAP_CONTROL_DECODE_VALUE.get(String.valueOf(e2));
@@ -2928,10 +2576,7 @@
     }
     catch(ASN1Exception asn1e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, asn1e);
-      }
+      logger.traceException(asn1e);
     }
 
     try
@@ -2940,10 +2585,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_CONTROL_DECODE_SEQUENCE.get(String.valueOf(e));
       throw new LDAPException(PROTOCOL_ERROR, message, e);
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
index 1f82d36..154bdf4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
@@ -30,7 +30,6 @@
 
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.loggers.AccessLogger.logConnect;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.io.IOException;
@@ -49,10 +48,9 @@
 import org.opends.server.api.ServerShutdownListener;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1ByteChannelReader;
 import org.opends.server.protocols.asn1.ASN1Exception;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.LDAPException;
@@ -69,10 +67,7 @@
        extends DirectoryThread
        implements ServerShutdownListener
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Indicates whether the Directory Server is in the process of shutting down.
   private volatile boolean shutdownRequested = false;
@@ -130,10 +125,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_REQHANDLER_OPEN_SELECTOR_FAILED.get(
           handlerName, String.valueOf(e));
@@ -218,28 +210,19 @@
         }
         catch (ASN1Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
             e.getMessageObject());
         }
         catch (LDAPException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
             e.getMessageObject());
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
             LocalizableMessage.raw(e.toString()));
         }
@@ -270,10 +253,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             c.disconnect(DisconnectReason.SERVER_ERROR, true,
                 ERR_LDAP_REQHANDLER_CANNOT_REGISTER.get(handlerName,
@@ -295,10 +275,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // FIXME -- Should we do something else with this?
       }
@@ -339,10 +316,7 @@
                 }
                 catch (Exception e)
                 {
-                  if (debugEnabled())
-                  {
-                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                  }
+                  logger.traceException(e);
 
                   // Some other error occurred while we were trying to read data
                   // from the client.
@@ -354,10 +328,7 @@
               }
               catch (Exception e)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                }
+                logger.traceException(e);
 
                 // We got some other kind of error.  If nothing else, cancel the
                 // key, but if the client connection is available then
@@ -378,10 +349,7 @@
           }
           catch (CancelledKeyException cke)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, cke);
-            }
+            logger.traceException(cke);
 
             // This could happen if a connection was closed between the time
             // that select returned and the time that we try to access the
@@ -390,10 +358,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should not happen, and it would have caused our reader
             // thread to die.  Log a severe error.
@@ -427,10 +392,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       try
@@ -439,10 +401,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       try
@@ -452,10 +411,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -471,10 +427,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
index fcd702f..c5934fe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
@@ -32,8 +32,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.forgerock.opendj.ldap.ByteString;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -46,10 +45,7 @@
 public class ModifyDNRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The current entry DN for this modify DN request.
   private ByteString entryDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
index 4a1411d..938b63b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class ModifyDNResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The matched DN for this response.
   private DN matchedDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
index 6a71140..b4283a3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
@@ -31,12 +31,11 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.RawModification;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -48,10 +47,7 @@
 public class ModifyRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of modifications for this modify request. */
   private List<RawModification> modifications;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
index 7d9ddc9..ca60fbe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class ModifyResponseProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The matched DN for this response.
   private DN matchedDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
index 8695f6e..5771bd0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
@@ -31,14 +31,13 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.DereferencePolicy;
 import org.opends.server.types.RawFilter;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -49,10 +48,7 @@
 public class SearchRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The typesOnly flag for this search request. */
   private boolean typesOnly;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
index b5e7c9b..cc434e0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
@@ -35,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.DN;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -50,10 +49,7 @@
 public class SearchResultDoneProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The matched DN for this response.
   private DN matchedDN;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
index 412624d..51b3b5f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.protocols.ldap;
 
@@ -34,8 +35,7 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.types.SearchResultReference;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -49,10 +49,7 @@
 public class SearchResultReferenceProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of referral URLs for this search result reference.
   private List<String> referralURLs;
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
index c60ba2c..5a1a6bc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.protocols.ldap;
 
@@ -29,8 +30,7 @@
 
 import org.opends.server.protocols.asn1.ASN1Writer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -45,10 +45,7 @@
 public class UnbindRequestProtocolOp
        extends ProtocolOp
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new LDAP unbind request protocol op.
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/common/FirstChangeNumberVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/replication/common/FirstChangeNumberVirtualAttributeProvider.java
index 2a195d4..1e9001c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/common/FirstChangeNumberVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/common/FirstChangeNumberVirtualAttributeProvider.java
@@ -36,14 +36,13 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.workflowelement.externalchangelog.ECLWorkflowElement;
 
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * Virtual attribute returning the oldest change number from the changelogDB.
@@ -53,7 +52,7 @@
        implements ConfigurationChangeListener<UserDefinedVirtualAttributeCfg>
 {
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this member virtual attribute provider.
@@ -103,7 +102,7 @@
       // Rather than returning 0 which is no change, return -1 to
       // indicate the error.
       value = "-1";
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
     ByteString valueBS = ByteString.valueOf(value);
     return Collections.singleton(AttributeValues.create(valueBS, valueBS));
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/common/LastChangeNumberVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/replication/common/LastChangeNumberVirtualAttributeProvider.java
index 3616f98..03cbe96 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/common/LastChangeNumberVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/common/LastChangeNumberVirtualAttributeProvider.java
@@ -36,14 +36,13 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.workflowelement.externalchangelog.ECLWorkflowElement;
 
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * Virtual attribute returning the newest change number from the changelogDB.
@@ -53,7 +52,7 @@
        implements ConfigurationChangeListener<UserDefinedVirtualAttributeCfg>
 {
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this member virtual attribute provider.
@@ -103,7 +102,7 @@
       // Rather than returning 0 which is no change, return -1 to
       // indicate the error.
       value = "-1";
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
     ByteString valueBS = ByteString.valueOf(value);
     return Collections.singleton(AttributeValues.create(valueBS, valueBS));
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/common/LastCookieVirtualProvider.java b/opendj3-server-dev/src/server/org/opends/server/replication/common/LastCookieVirtualProvider.java
index de7a3dc..b5d5d8c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/common/LastCookieVirtualProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/common/LastCookieVirtualProvider.java
@@ -36,7 +36,7 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.types.*;
@@ -45,7 +45,6 @@
 import org.opends.server.workflowelement.externalchangelog.ECLWorkflowElement;
 
 import static org.opends.messages.ExtensionMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class implements a virtual attribute provider in the root-dse entry
@@ -56,11 +55,7 @@
    extends VirtualAttributeProvider<UserDefinedVirtualAttributeCfg>
    implements ConfigurationChangeListener<UserDefinedVirtualAttributeCfg>
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new instance of this member virtual attribute provider.
@@ -112,7 +107,7 @@
     }
     catch (Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
     return Collections.emptySet();
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/EntryHistorical.java b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/EntryHistorical.java
index 4d77f0f..83d4fd7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/EntryHistorical.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/EntryHistorical.java
@@ -30,7 +30,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.protocol.OperationContext;
 import org.opends.server.types.*;
@@ -41,7 +41,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -78,11 +77,7 @@
    * Name of the entryuuid attribute.
    */
   public static final String ENTRYUUID_ATTRIBUTE_NAME = "entryuuid";
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The delay to purge the historical information.
@@ -924,9 +919,9 @@
     // an entryUUID attribute may not be present and this causes severe side
     // effects for replication which requires the attribute to always be
     // present.
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugWarning(
+      logger.trace(
           "Replication requires an entryUUID attribute in order "
               + "to perform conflict resolution, but none was "
               + "found in entry \"%s\": generating virtual entryUUID instead",
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 0adf000..1077a10 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -49,7 +49,7 @@
 import org.opends.server.backends.task.Task;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchListener;
@@ -75,7 +75,6 @@
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.plugin.EntryHistorical.*;
 import static org.opends.server.replication.protocol.OperationContext.*;
 import static org.opends.server.replication.service.ReplicationMonitor.*;
@@ -166,11 +165,7 @@
    * supposed to have when it was marked as conflicting.
    */
   public static final String DS_SYNC_CONFLICT = "ds-sync-conflict";
-
- /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The update to replay message queue where the listener thread is going to
@@ -639,8 +634,8 @@
   private boolean isBackendFractionalConfigConsistent()
   {
     // Read config stored in domain root entry
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
           "Attempt to read the potential fractional config in domain root "
               + "entry " + getBaseDNString());
 
@@ -2523,9 +2518,9 @@
     {
       // A failure occurred after the change had been removed from the pending
       // changes table.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(
+        logger.trace(
             "LDAPReplicationDomain.updateError: Unable to find remote "
                 + "pending change for CSN %s", csn);
       }
@@ -3321,8 +3316,8 @@
   {
     long genId = exportBackend(null, true);
 
-    if (debugEnabled())
-      TRACER.debugInfo("Computed generationId: generationId=" + genId);
+    if (logger.isTraceEnabled())
+      logger.trace("Computed generationId: generationId=" + genId);
 
     return genId;
   }
@@ -3402,8 +3397,8 @@
    */
   private long loadGenerationId() throws DirectoryException
   {
-    if (debugEnabled())
-      TRACER.debugInfo("Attempt to read generation ID from DB "
+    if (logger.isTraceEnabled())
+      logger.trace("Attempt to read generation ID from DB "
           + getBaseDNString());
 
     /*
@@ -3480,15 +3475,15 @@
       aGenerationId = computeGenerationId();
       saveGenerationId(aGenerationId);
 
-      if (debugEnabled())
-        TRACER.debugInfo("Generation ID created for domain baseDN="
+      if (logger.isTraceEnabled())
+        logger.trace("Generation ID created for domain baseDN="
             + getBaseDNString() + " generationId=" + aGenerationId);
     }
     else
     {
       generationIdSavedStatus = true;
-      if (debugEnabled())
-        TRACER.debugInfo("Generation ID successfully read from domain baseDN="
+      if (logger.isTraceEnabled())
+        logger.trace("Generation ID successfully read from domain baseDN="
             + getBaseDNString() + " generationId=" + aGenerationId);
     }
     return aGenerationId;
@@ -4052,7 +4047,7 @@
     }
     catch(Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       logError(ERR_CHECK_CREATE_REPL_BACKEND_FAILED.get(
           stackTraceToSingleLineString(e)));
     }
@@ -4450,9 +4445,9 @@
          * causing a recovery of all changes since the current committed server
          * state. See OPENDJ-1115.
          */
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(
+          logger.trace(
                   "LDAPReplicationDomain.processUpdate: ignoring "
                   + "duplicate change %s", msg.getCSN());
         }
@@ -5127,7 +5122,7 @@
   public void purgeConflictsHistorical(PurgeConflictsHistoricalTask task,
       long endDate) throws DirectoryException
   {
-     TRACER.debugInfo("[PURGE] purgeConflictsHistorical "
+     logger.trace("[PURGE] purgeConflictsHistorical "
          + "on domain: " + getBaseDNString()
          + "endDate:" + new Date(endDate)
          + "lastCSNPurgedFromHist: "
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplayThread.java b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplayThread.java
index 845fcb3..5b5f202 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplayThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplayThread.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.concurrent.BlockingQueue;
@@ -37,7 +36,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.protocol.LDAPUpdateMsg;
 
 /**
@@ -49,10 +48,7 @@
  */
 public class ReplayThread extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final BlockingQueue<UpdateToReplay> updateToReplayQueue;
   private AtomicBoolean shutdown = new AtomicBoolean(false);
@@ -83,9 +79,9 @@
   @Override
   public void run()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Replication Replay thread starting.");
+      logger.trace("Replication Replay thread starting.");
     }
 
     while (!shutdown.get())
@@ -115,9 +111,9 @@
         logError(message);
       }
     }
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Replication Replay thread stopping.");
+      logger.trace("Replication Replay thread stopping.");
     }
   }
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ErrorMsg.java b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ErrorMsg.java
index d88a057..f39b20d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ErrorMsg.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ErrorMsg.java
@@ -27,14 +27,12 @@
 package org.opends.server.replication.protocol;
 import org.forgerock.i18n.LocalizableMessage;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
 import java.io.UnsupportedEncodingException;
 import java.util.zip.DataFormatException;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This message is part of the replication protocol.
@@ -44,7 +42,7 @@
 public class ErrorMsg extends RoutableMsg
 {
   // The tracer object for the debug logger
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Specifies the messageID built from the error that was detected
   private String msgID;
@@ -71,8 +69,8 @@
     this.details = details;
     this.creationTime = System.currentTimeMillis();
 
-    if (debugEnabled())
-      TRACER.debugInfo(" Creating error message" + this.toString()
+    if (logger.isTraceEnabled())
+      logger.trace(" Creating error message" + this.toString()
           + " " + stackTraceToSingleLineString(new Exception("trace")));
   }
 
@@ -89,8 +87,8 @@
     this.details = details;
     this.creationTime = System.currentTimeMillis();
 
-    if (debugEnabled())
-      TRACER.debugInfo(this.toString());
+    if (logger.isTraceEnabled())
+      logger.trace(this.toString());
   }
 
   /**
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/HeartbeatThread.java b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
index 940844c..7a7e4ab 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
@@ -22,19 +22,16 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.protocol;
 
 import java.io.IOException;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.StaticUtils;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This thread publishes a {@link HeartbeatMsg} on a given protocol session at
  * regular intervals when there are no other replication messages being
@@ -44,10 +41,7 @@
  */
 public class HeartbeatThread extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -97,9 +91,9 @@
   {
     try
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Heartbeat thread is starting, interval is %d",
+        logger.trace("Heartbeat thread is starting, interval is %d",
                   heartbeatInterval);
       }
       HeartbeatMsg heartbeatMessage = new HeartbeatMsg();
@@ -107,9 +101,9 @@
       while (!shutdown)
       {
         long now = System.currentTimeMillis();
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Heartbeat thread awoke at %d, last message " +
+          logger.trace("Heartbeat thread awoke at %d, last message " +
               "was sent at %d", now, session.getLastPublishTime());
         }
 
@@ -117,9 +111,9 @@
         {
           if (!heartbeatsDisabled)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugVerbose("Heartbeat sent at %d", now);
+              logger.trace("Heartbeat sent at %d", now);
             }
             session.publish(heartbeatMessage);
           }
@@ -131,9 +125,9 @@
           sleepTime = heartbeatInterval;
         }
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Heartbeat thread sleeping for %d", sleepTime);
+          logger.trace("Heartbeat thread sleeping for %d", sleepTime);
         }
 
         synchronized (shutdownLock)
@@ -147,10 +141,7 @@
             catch (InterruptedException e)
             {
               // Server shutdown monitor may interrupt slow threads.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               shutdown = true;
             }
           }
@@ -159,17 +150,17 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Heartbeat thread could not send a heartbeat."
+        logger.trace("Heartbeat thread could not send a heartbeat."
             + StaticUtils.stackTraceToSingleLineString(e));
       }
     }
     finally
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Heartbeat thread is exiting.");
+        logger.trace("Heartbeat thread is exiting.");
       }
     }
   }
@@ -185,14 +176,14 @@
     {
       shutdown = true;
       shutdownLock.notifyAll();
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Going to notify Heartbeat thread.");
+        logger.trace("Going to notify Heartbeat thread.");
       }
     }
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Returning from Heartbeat shutdown.");
+      logger.trace("Returning from Heartbeat shutdown.");
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/Session.java b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/Session.java
index d156619..147bc16 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/Session.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/Session.java
@@ -22,13 +22,12 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.protocol;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.io.*;
@@ -45,7 +44,7 @@
 import javax.net.ssl.SSLSocket;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.StaticUtils;
 
 
@@ -55,10 +54,7 @@
  */
 public final class Session extends DirectoryThread implements Closeable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final Socket plainSocket;
   private final SSLSocket secureSocket;
@@ -132,9 +128,9 @@
   {
     super("Replication Session from "+ socket.getLocalSocketAddress() +
         " to " + socket.getRemoteSocketAddress());
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(
+      logger.trace(
           "Creating Session from %s to %s in %s",
           socket.getLocalSocketAddress(),
           socket.getRemoteSocketAddress(),
@@ -185,11 +181,11 @@
     }
 
     // Perform close outside of critical section.
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       if (localSessionError == null)
       {
-        TRACER.debugInfo(
+        logger.trace(
             "Closing Session from %s to %s in %s",
             plainSocket.getLocalSocketAddress(),
             plainSocket.getRemoteSocketAddress(),
@@ -197,7 +193,7 @@
       }
       else
       {
-        TRACER.debugInfo(
+        logger.trace(
             "Aborting Session from %s to %s in %s due to the "
                 + "following error: %s",
             plainSocket.getLocalSocketAddress(),
@@ -576,9 +572,9 @@
   {
     isRunning.set(true);
     latch.countDown();
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(this.getName() + " starting.");
+      logger.trace(this.getName() + " starting.");
     }
     boolean needClosing = false;
     while (!closeInitiated)
@@ -607,9 +603,9 @@
     {
       close();
     }
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(this.getName() + " stopped.");
+      logger.trace(this.getName() + " stopped.");
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/DataServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/DataServerHandler.java
index 1e49d56..9f11db2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/DataServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -35,7 +35,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.common.ServerStatus.*;
 import static org.opends.server.replication.common.StatusMachine.*;
 import static org.opends.server.replication.protocol.ProtocolVersion.*;
@@ -131,9 +130,9 @@
 
     if (status != ServerStatus.BAD_GEN_ID_STATUS)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("In RS " + replicationServer.getServerId()
+        logger.trace("In RS " + replicationServer.getServerId()
             + ", DS " + getServerId() + " for baseDN=" + getBaseDNString()
             + " has already generation id " + newGenId
             + " so no ChangeStatusMsg sent to him.");
@@ -145,9 +144,9 @@
     // Close connection with him to force his reconnection: DS will
     // reconnect in NORMAL_STATUS or DEGRADED_STATUS.
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In RS " + replicationServer.getServerId()
+      logger.trace("In RS " + replicationServer.getServerId()
           + ", closing connection to DS " + getServerId() + " for baseDN="
           + getBaseDNString() + " to force reconnection as new local"
           + " generationId and remote one match and DS is in bad gen id: "
@@ -214,9 +213,9 @@
     // Send message requesting to change the DS status
     ChangeStatusMsg csMsg = new ChangeStatusMsg(newStatus, INVALID_STATUS);
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In RS " + replicationServer.getServerId()
+      logger.trace("In RS " + replicationServer.getServerId()
           + " Sending change status " + origin + " to " + getServerId()
           + " for baseDN=" + getBaseDNString() + ":\n" + csMsg);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 8ebfc99..dc88b92 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -43,7 +43,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.ProtocolVersion.*;
 import static org.opends.server.replication.protocol.StartECLSessionMsg
 .ECLRequestType.*;
@@ -206,7 +205,7 @@
      */
     private void computeNextEligibleMessageForDomain(String opId)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
         debugInfo(opId, "ctxt=" + this);
 
       assert(nextMsg == null);
@@ -219,7 +218,7 @@
         {
           final boolean hasBecomeEligible = isEligible(nextNonEligibleMsg);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debugInfo(opId, "stored nonEligibleMsg " + nextNonEligibleMsg
                 + " has now become eligible regarding the eligibleCSN ("
                 + eligibleCSN + " ): " + hasBecomeEligible);
@@ -240,13 +239,13 @@
             return;
           }
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debugInfo(opId, "got new message : [newMsg=" + newMsg + "] "
                 + dumpState());
 
           final boolean isEligible = isEligible(newMsg);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debugInfo(opId, "newMsg isEligible=" + isEligible + " since "
                 + "newMsg=[" + toString(newMsg.getCSN()) + "] eligibleCSN=["
                 + toString(eligibleCSN) + "] " + dumpState());
@@ -263,7 +262,7 @@
       }
       catch(Exception e)
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
       }
     }
 
@@ -300,7 +299,7 @@
 
     private void debugInfo(String opId, String message)
     {
-      TRACER.debugInfo("In ECLServerHandler, for baseDN="
+      logger.trace("In ECLServerHandler, for baseDN="
           + mh.getBaseDNString() + " getNextEligibleMessageForDomain(" + opId
           + ") " + message);
     }
@@ -554,13 +553,13 @@
     }
     catch(DirectoryException de)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, de);
+      logger.traceException(de);
       releaseCursor();
       throw de;
     }
     catch(Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       releaseCursor();
       throw new DirectoryException(
           ResultCode.OPERATIONS_ERROR,
@@ -711,7 +710,7 @@
     }
     catch(Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       // FIXME:ECL do not publish internal exception plumb to the client
       throw new DirectoryException(
           ResultCode.OPERATIONS_ERROR,
@@ -719,8 +718,8 @@
               e),
               e);
     }
-    if (debugEnabled())
-      TRACER.debugInfo("initializeChangelogDomainCtxts() ends with "
+    if (logger.isTraceEnabled())
+      logger.trace("initializeChangelogDomainCtxts() ends with "
           + dumpState());
   }
 
@@ -911,8 +910,8 @@
   @Override
   public void shutdown()
   {
-    if (debugEnabled())
-      TRACER.debugInfo(this + " shutdown()");
+    if (logger.isTraceEnabled())
+      logger.trace(this + " shutdown()");
     releaseCursor();
     for (DomainContext domainCtxt : domainCtxts) {
       if (!domainCtxt.unRegisterHandler()) {
@@ -1025,7 +1024,7 @@
     }
     catch(Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
           ERR_INVALID_COOKIE_SYNTAX.get(cookie));
     }
@@ -1066,8 +1065,8 @@
 
     registerIntoDomain();
 
-    if (debugEnabled())
-      TRACER.debugInfo(getClass().getCanonicalName() + " " + getOperationId()
+    if (logger.isTraceEnabled())
+      logger.trace(getClass().getCanonicalName() + " " + getOperationId()
           + " initialized: " + " " + dumpState() + " " + " "
           + domaimCtxtsToString(""));
   }
@@ -1142,7 +1141,7 @@
     }
     catch(DirectoryException de)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, de);
+      logger.traceException(de);
     }
     return null;
   }
@@ -1154,8 +1153,8 @@
    */
   public ECLUpdateMsg getNextECLUpdate() throws DirectoryException
   {
-    if (debugEnabled())
-      TRACER.debugInfo("In cn=changelog" + this +
+    if (logger.isTraceEnabled())
+      logger.trace("In cn=changelog" + this +
           " getNextECLUpdate starts: " + dumpState());
 
     ECLUpdateMsg oldestChange = null;
@@ -1226,8 +1225,8 @@
 
       if (searchPhase == PERSISTENT_PHASE)
       {
-        if (debugEnabled())
-          TRACER.debugInfo(domaimCtxtsToString(
+        if (logger.isTraceEnabled())
+          logger.trace(domaimCtxtsToString(
               "In getNextECLUpdate (persistent): "
                   + "looking for the generalized oldest change"));
 
@@ -1246,7 +1245,7 @@
     }
     catch(Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       throw new DirectoryException(
           ResultCode.OPERATIONS_ERROR,
           LocalizableMessage.raw("Exception raised: "),
@@ -1256,14 +1255,14 @@
     if (oldestChange != null)
     {
       final CSN csn = oldestChange.getUpdateMsg().getCSN();
-      if (debugEnabled())
-        TRACER.debugInfo("getNextECLUpdate updates previousCookie:" + csn);
+      if (logger.isTraceEnabled())
+        logger.trace("getNextECLUpdate updates previousCookie:" + csn);
 
       previousCookie.update(oldestChange.getBaseDN(), csn);
       oldestChange.setCookie(previousCookie);
 
-      if (debugEnabled())
-        TRACER.debugInfo("getNextECLUpdate returns result oldestChange="
+      if (logger.isTraceEnabled())
+        logger.trace("getNextECLUpdate returns result oldestChange="
             + oldestChange);
     }
     return oldestChange;
@@ -1318,8 +1317,8 @@
       final CSN csnFromCNIndexDB = currentRecord.getCSN();
       final DN baseDNFromCNIndexDB = currentRecord.getBaseDN();
 
-      if (debugEnabled())
-        TRACER.debugInfo("assignChangeNumber() comparing the replicaDB's and"
+      if (logger.isTraceEnabled())
+        logger.trace("assignChangeNumber() comparing the replicaDB's and"
             + " CNIndexDB's baseDNs :" + baseDNFromReplicaDB + "?="
             + baseDNFromCNIndexDB + " timestamps:" + asDate(csnFromReplicaDB)
             + " ?older" + asDate(csnFromCNIndexDB));
@@ -1329,8 +1328,8 @@
       {
         // We matched the ReplicaDB change with a record in the CNIndexDB
         // => set the changeNumber in memory and return the change to the client
-        if (debugEnabled())
-          TRACER.debugInfo("assignChangeNumber() assigning changeNumber="
+        if (logger.isTraceEnabled())
+          logger.trace("assignChangeNumber() assigning changeNumber="
               + currentRecord.getChangeNumber() + " to change="
               + replicaDBChange);
 
@@ -1347,8 +1346,8 @@
         // the change from the replicaDB is older
         // it should have been stored lately
         // let's continue to traverse the replicaDBs
-        if (debugEnabled())
-          TRACER.debugInfo("assignChangeNumber() will skip " + csnFromReplicaDB
+        if (logger.isTraceEnabled())
+          logger.trace("assignChangeNumber() will skip " + csnFromReplicaDB
               + " and read next change from the regular changelog.");
         return false; // TO BE CHECKED
       }
@@ -1360,24 +1359,21 @@
       try
       {
         // keep traversing the CNIndexDB searching for the replicaDB change
-        if (debugEnabled())
-          TRACER.debugInfo("assignChangeNumber() will skip " + csnFromCNIndexDB
+        if (logger.isTraceEnabled())
+          logger.trace("assignChangeNumber() will skip " + csnFromCNIndexDB
               + " and read next change from the CNIndexDB.");
 
         isEndOfCNIndexDBReached = !cnIndexDBCursor.next();
 
-        if (debugEnabled())
-          TRACER.debugInfo("assignChangeNumber() has skipped to changeNumber="
+        if (logger.isTraceEnabled())
+          logger.trace("assignChangeNumber() has skipped to changeNumber="
               + currentRecord.getChangeNumber() + " csn="
               + currentRecord.getCSN() + " End of CNIndexDB ?"
               + isEndOfCNIndexDBReached);
       }
       catch (ChangelogException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         // FIXME There is an opportunity for an infinite loop here if the DB
         // continuously throws ChangelogExceptions
       }
@@ -1404,8 +1400,8 @@
   {
     // starvation of changelog messages
     // all domain have been unactived means are covered
-    if (debugEnabled())
-      TRACER.debugInfo("In cn=changelog" + "," + this + " closeInitPhase(): "
+    if (logger.isTraceEnabled())
+      logger.trace("In cn=changelog" + "," + this + " closeInitPhase(): "
           + dumpState());
 
     // go to persistent phase if one
@@ -1454,8 +1450,8 @@
       }
     }
 
-    if (debugEnabled())
-      TRACER.debugInfo("In cn=changelog," + this
+    if (logger.isTraceEnabled())
+      logger.trace("In cn=changelog," + this
           + " findDomainCtxtWithOldestChange() returns "
           + ((oldestCtxt != null) ? oldestCtxt.nextMsg : "-1"));
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java
index 97974ca..9f5266d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2009 Sun Microsystems, Inc.
- *      Portions copyright 2011-2014 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
@@ -31,11 +31,10 @@
 
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PersistentSearch;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.protocol.DoneMsg;
 import org.opends.server.replication.protocol.ECLUpdateMsg;
 import org.opends.server.replication.protocol.Session;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.workflowelement.externalchangelog.ECLSearchOperation;
@@ -43,7 +42,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -52,10 +50,7 @@
  */
 public class ECLServerWriter extends ServerWriter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final Session session;
   private final ECLServerHandler handler;
@@ -203,7 +198,7 @@
       }
       catch(DirectoryException de)
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
+        logger.traceException(de);
       }
 
       if (update == null)
@@ -248,8 +243,8 @@
    */
   private void publish(ECLUpdateMsg msg) throws IOException
   {
-    if (debugEnabled())
-      TRACER.debugInfo(getName() + " publishes msg=[" + msg + "]");
+    if (logger.isTraceEnabled())
+      logger.trace(getName() + " publishes msg=[" + msg + "]");
 
     if (session != null)
     {
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/LightweightServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/LightweightServerHandler.java
index f531e01..3787f77 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/LightweightServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/LightweightServerHandler.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
@@ -34,7 +34,7 @@
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.DSInfo;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.types.Attribute;
@@ -42,8 +42,6 @@
 import org.opends.server.types.Attributes;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class defines a server handler dedicated to the remote LDAP servers
  * connected to a remote Replication Server.
@@ -58,7 +56,7 @@
   extends MonitorProvider<MonitorProviderCfg>
 {
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final ReplicationServerHandler replServerHandler;
 
@@ -81,7 +79,7 @@
     this.replServerHandler = replServerHandler;
     this.dsInfo = dsInfo;
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debugInfo("()");
   }
 
@@ -109,7 +107,7 @@
    */
   public void startHandler()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debugInfo("start");
     DirectoryServer.deregisterMonitorProvider(this);
     DirectoryServer.registerMonitorProvider(this);
@@ -120,7 +118,7 @@
    */
   public void stopHandler()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debugInfo("stop");
     DirectoryServer.deregisterMonitorProvider(this);
   }
@@ -128,7 +126,7 @@
   private void debugInfo(String message)
   {
     final ReplicationServerDomain domain = replServerHandler.getDomain();
-    TRACER.debugInfo("In " + domain.getLocalRSMonitorInstanceName()
+    logger.trace("In " + domain.getLocalRSMonitorInstanceName()
         + " LWSH for remote server " + getServerId() + " connected to:"
         + replServerHandler.getMonitorInstanceName() + " " + message);
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
index 71cfd8e..6586327 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -35,7 +35,7 @@
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.replication.protocol.UpdateMsg;
@@ -43,7 +43,6 @@
 import org.opends.server.replication.server.changelog.api.DBCursor;
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -61,11 +60,8 @@
  */
 public class MessageHandler extends MonitorProvider<MonitorProviderCfg>
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  protected static final DebugTracer TRACER = getTracer();
+  /** The logger of this class. */
+  protected static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   /**
    * UpdateMsg queue.
    */
@@ -306,7 +302,7 @@
           }
           catch (ChangelogException e)
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
           }
           finally
           {
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/MonitoringPublisher.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/MonitoringPublisher.java
index 111d635..75e62e0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/MonitoringPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/MonitoringPublisher.java
@@ -22,18 +22,16 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
 import java.io.IOException;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.protocol.MonitorMsg;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This thread regularly publishes monitoring information:
  * - it sends monitoring messages regarding the direct topology (directly
@@ -45,11 +43,7 @@
  */
 public class MonitoringPublisher extends DirectoryThread
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The replication domain we send monitoring for. */
   private final ReplicationServerDomain domain;
@@ -83,9 +77,9 @@
   @Override
   public void run()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getMessage("Monitoring publisher starting."));
+      logger.trace(getMessage("Monitoring publisher starting."));
     }
 
     try
@@ -127,11 +121,11 @@
     }
     catch (InterruptedException e)
     {
-      TRACER.debugInfo(getMessage(
+      logger.trace(getMessage(
           "Monitoring publisher has been interrupted while sleeping."));
     }
 
-    TRACER.debugInfo(getMessage("Monitoring publisher is terminated."));
+    logger.trace(getMessage("Monitoring publisher is terminated."));
   }
 
 
@@ -146,9 +140,9 @@
     {
       shutdownLock.notifyAll();
     }
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getMessage("Shutting down monitoring publisher."));
+      logger.trace(getMessage("Shutting down monitoring publisher."));
     }
   }
 
@@ -175,9 +169,9 @@
    */
   public void setPeriod(long period)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getMessage(
+      logger.trace(getMessage(
           "Monitoring publisher changing period value to " + period));
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationBackend.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationBackend.java
index 7256159..b35a759 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationBackend.java
@@ -41,7 +41,7 @@
 import org.opends.server.backends.jeb.BackupManager;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.replication.common.CSN;
@@ -63,7 +63,6 @@
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.types.FilterType.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -84,11 +83,7 @@
 public class ReplicationBackend extends Backend
 {
   private static final String CHANGE_NUMBER = "replicationChangeNumber";
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final String BASE_DN = "dc=replicationchanges";
 
@@ -186,10 +181,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(
             dn.toString(), getExceptionMessage(e));
@@ -228,10 +220,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -472,10 +461,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
         ERR_BACKEND_CANNOT_CREATE_LDIF_WRITER.get(String.valueOf(e));
@@ -586,7 +572,7 @@
       }
 
       final ServerState serverState = domain.getLatestServerState();
-      TRACER.debugInfo("State=" + serverState);
+      logger.trace("State=" + serverState);
       Attribute stateAttr = Attributes.create("state", serverState.toString());
       Attribute genidAttr = Attributes.create("generation-id",
           "" + domain.getGenerationId() + domain.getBaseDN());
@@ -604,10 +590,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         logError(ERR_BACKEND_EXPORT_ENTRY.get(dnString, String.valueOf(e)));
       }
     }
@@ -877,10 +860,7 @@
     catch (Exception e)
     {
       this.skippedCount++;
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       final String dnStr = (dn != null) ? dn.toNormalizedString() : "Unknown";
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationDomainMonitorData.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationDomainMonitorData.java
index a27d0bf..e7bc34d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationDomainMonitorData.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationDomainMonitorData.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2012-2013 ForgeRock AS
+ *      Portions Copyright 2012-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
@@ -31,23 +31,18 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.util.TimeThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class defines the Monitor Data that are consolidated across a
  * replication domain.
  */
 class ReplicationDomainMonitorData
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    *
@@ -171,7 +166,7 @@
 
           int missingChangesLsiLsj = CSN.diffSeqNum(lsjMaxCSN, lsiLastCSN);
 
-          if (debugEnabled()) {
+          if (logger.isTraceEnabled()) {
             mds += "+ diff(" + lsjMaxCSN + "-"
                 + lsiLastCSN + ")=" + missingChangesLsiLsj;
           }
@@ -190,7 +185,7 @@
           if (lsjServerId.equals(lsiServerId) && missingChangesLsiLsj <= 50)
           {
             missingChangesLsiLsj = 0;
-            if (debugEnabled()) {
+            if (logger.isTraceEnabled()) {
               mds +=
                   " (diff replaced by 0 as for server id " + lsiServerId + ")";
             }
@@ -199,7 +194,7 @@
           lsiMissingChanges += missingChangesLsiLsj;
         }
       }
-      if (debugEnabled()) {
+      if (logger.isTraceEnabled()) {
         mds += "=" + lsiMissingChanges;
       }
       this.missingChanges.put(lsiServerId, lsiMissingChanges);
@@ -224,22 +219,22 @@
 
           int missingChangesLsiLsj = CSN.diffSeqNum(lsjMaxCSN, lsiLastCSN);
 
-          if (debugEnabled()) {
+          if (logger.isTraceEnabled()) {
             mds += "+ diff(" + lsjMaxCSN + "-"
                 + lsiLastCSN + ")=" + missingChangesLsiLsj;
           }
           lsiMissingChanges += missingChangesLsiLsj;
         }
       }
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         mds += "=" + lsiMissingChanges;
       }
       this.missingChangesRS.put(lsiServerId, lsiMissingChanges);
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(
+        logger.trace(
           "Complete monitor data : Missing changes ("+ lsiServerId +")=" + mds);
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
index 9293751..daa1af6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -44,7 +44,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.WorkflowImpl;
 import org.opends.server.core.networkgroups.NetworkGroup;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.protocol.*;
@@ -58,7 +58,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -102,11 +101,7 @@
   private DN backendConfigEntryDN;
   /** ID of the backend. */
   private static final String backendId = "replicationChanges";
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static String eclWorkflowID =
     "External Changelog Workflow ID";
@@ -270,10 +265,7 @@
         // shutdown or changing the port number process.
         // Just log debug information and loop.
         // Do not log the message during shutdown.
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         if (!shutdown) {
           LocalizableMessage message =
             ERR_EXCEPTION_LISTENING.get(e.getLocalizedMessage());
@@ -369,8 +361,8 @@
   {
     boolean sslEncryption = replSessionSecurity.isSslEncryption();
 
-    if (debugEnabled())
-      TRACER.debugInfo("RS " + getMonitorInstanceName() + " connects to "
+    if (logger.isTraceEnabled())
+      logger.trace("RS " + getMonitorInstanceName() + " connects to "
           + remoteServerAddress);
 
     Socket socket = new Socket();
@@ -388,8 +380,8 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      if (logger.isTraceEnabled())
+        logger.traceException(e);
       close(session);
       close(socket);
     }
@@ -411,14 +403,14 @@
       listenSocket.bind(new InetSocketAddress(getReplicationPort()));
 
       // creates working threads: we must first connect, then start to listen.
-      if (debugEnabled())
-        TRACER.debugInfo("RS " +getMonitorInstanceName()+
+      if (logger.isTraceEnabled())
+        logger.trace("RS " +getMonitorInstanceName()+
             " creates connect thread");
       connectThread = new ReplicationServerConnectThread(this);
       connectThread.start();
 
-      if (debugEnabled())
-        TRACER.debugInfo("RS " +getMonitorInstanceName()+
+      if (logger.isTraceEnabled())
+        logger.trace("RS " +getMonitorInstanceName()+
             " creates listen thread");
 
       listenThread = new ReplicationServerListenThread(this);
@@ -433,8 +425,8 @@
       }
       eclwe = new ECLWorkflowElement(this);
 
-      if (debugEnabled())
-        TRACER.debugInfo("RS " +getMonitorInstanceName()+
+      if (logger.isTraceEnabled())
+        logger.trace("RS " +getMonitorInstanceName()+
             " successfully initialized");
     } catch (UnknownHostException e)
     {
@@ -705,9 +697,9 @@
     }
     catch (ChangelogException ignored)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.WARNING, ignored);
+        logger.traceException(ignored);
       }
     }
 
@@ -791,8 +783,8 @@
       }
       catch (ChangelogException e)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        if (logger.isTraceEnabled())
+          logger.traceException(e);
         resultCode = ResultCode.OPERATIONS_ERROR;
       }
     }
@@ -817,14 +809,14 @@
       }
       catch (IOException e)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        if (logger.isTraceEnabled())
+          logger.traceException(e);
         logError(ERR_COULD_NOT_CLOSE_THE_SOCKET.get(e.toString()));
       }
       catch (InterruptedException e)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        if (logger.isTraceEnabled())
+          logger.traceException(e);
         logError(ERR_COULD_NOT_STOP_LISTEN_THREAD.get(e.toString()));
       }
     }
@@ -1024,8 +1016,8 @@
    */
   public void remove()
   {
-    if (debugEnabled())
-      TRACER.debugInfo("RS " + getMonitorInstanceName() + " starts removing");
+    if (logger.isTraceEnabled())
+      logger.trace("RS " + getMonitorInstanceName() + " starts removing");
 
     shutdown();
     removeBackend();
@@ -1125,8 +1117,8 @@
   @Override
   public void processExportBegin(Backend backend, LDIFExportConfig config)
   {
-    if (debugEnabled())
-      TRACER.debugInfo("RS " + getMonitorInstanceName() + " Export starts");
+    if (logger.isTraceEnabled())
+      logger.trace("RS " + getMonitorInstanceName() + " Export starts");
     if (backend.getBackendID().equals(backendId))
     {
       // Retrieves the backend related to this replicationServerDomain
@@ -1328,7 +1320,7 @@
         eligibleCSN = domainEligibleCSN;
       }
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         final String dates = domainEligibleCSN == null ?
             "" : new Date(domainEligibleCSN.getTime()).toString();
@@ -1342,8 +1334,8 @@
       eligibleCSN = new CSN(TimeThread.getTime(), 0, 0);
     }
 
-    if (debugEnabled()) {
-      TRACER.debugInfo("In " + this + " getEligibleCSN() ends with " +
+    if (logger.isTraceEnabled()) {
+      logger.trace("In " + this + " getEligibleCSN() ends with " +
         " the following domainEligibleCSN for each domain :" + debugLog +
         " thus CrossDomainEligibleCSN=" + eligibleCSN +
         "  ts=" + new Date(eligibleCSN.getTime()));
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index f42b878..90ac10d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -40,7 +40,7 @@
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.protocol.*;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -49,7 +49,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.ProtocolVersion.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -135,7 +134,7 @@
   private volatile boolean generationIdSavedStatus = false;
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The needed info for each received assured update message we are waiting
@@ -322,7 +321,7 @@
          */
         if (isDifferentGenerationId(rsHandler.getGenerationId()))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
             debug("update " + update.getCSN()
                 + " will not be sent to replication server "
@@ -363,7 +362,7 @@
       if (dsStatus == ServerStatus.BAD_GEN_ID_STATUS
           || dsStatus == ServerStatus.FULL_UPDATE_STATUS)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           if (dsStatus == ServerStatus.BAD_GEN_ID_STATUS)
           {
@@ -811,7 +810,7 @@
           // update message came from
           AckMsg finalAck = expectedAcksInfo.createAck(true);
           ServerHandler origServer = expectedAcksInfo.getRequesterServer();
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
             debug("sending timeout for assured update with CSN " + csn
                 + " to serverId=" + origServer.getServerId());
@@ -952,7 +951,7 @@
   public void stopServer(ServerHandler sHandler, boolean shutdown)
   {
     // TODO JNR merge with stopServer(MessageHandler)
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("stopServer() on the server handler " + sHandler);
     }
@@ -988,7 +987,7 @@
         // Stop useless monitoring publisher if no more RS or DS in domain
         if ( (connectedDSs.size() + connectedRSs.size() )== 1)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
             debug("remote server " + sHandler
                 + " is the last RS/DS to be stopped:"
@@ -1006,7 +1005,7 @@
           // shutdown the status analyzer
           if (connectedDSs.size() == 1)
           {
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
               debug("remote server " + sHandler
                   + " is the last DS to be stopped: stopping status analyzer");
@@ -1067,7 +1066,7 @@
   public void stopServer(MessageHandler mHandler)
   {
     // TODO JNR merge with stopServer(ServerHandler, boolean)
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("stopServer() on the message handler " + mHandler);
     }
@@ -1143,7 +1142,7 @@
    */
   private void resetGenerationIdIfPossible()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("mayResetGenerationId generationIdSavedStatus="
           + generationIdSavedStatus);
@@ -1159,7 +1158,7 @@
       {
         if (generationId != rsHandler.getGenerationId())
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
             debug("mayResetGenerationId skip RS " + rsHandler
                 + " that has different genId");
@@ -1169,7 +1168,7 @@
         {
           ldapServersConnectedInTheTopology = true;
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
             debug("mayResetGenerationId RS " + rsHandler
                 + " has ldap servers connected to it"
@@ -1183,7 +1182,7 @@
     {
       ldapServersConnectedInTheTopology = true;
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         debug("has ldap servers connected to it - will not reset generationId");
       }
@@ -1924,7 +1923,7 @@
   public void resetGenerationId(ServerHandler senderHandler,
     ResetGenerationIdMsg genIdMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("Receiving ResetGenerationIdMsg from "
           + senderHandler.getServerId() + ":\n" + genIdMsg);
@@ -1954,7 +1953,7 @@
       else
       {
         // Order to take a gen id we already have, just ignore
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           debug("Reset generation id requested but generationId was already "
               + this.generationId + ":\n" + genIdMsg);
@@ -2026,7 +2025,7 @@
   public void processNewStatus(DataServerHandler senderHandler,
     ChangeStatusMsg csMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("receiving ChangeStatusMsg from " + senderHandler.getServerId()
           + ":\n" + csMsg);
@@ -2102,9 +2101,9 @@
       // to have the analyzer thread taking the domain lock only when the
       // status of a DS has to be changed. See more comments in run method of
       // StatusAnalyzer.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Status analyzer for domain " + baseDN
+        logger.trace("Status analyzer for domain " + baseDN
             + " has been interrupted when"
             + " trying to acquire domain lock for changing the status of DS "
             + dsHandler.getServerId());
@@ -2198,7 +2197,7 @@
    */
   public boolean isDegradedDueToGenerationId(int serverId)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("isDegraded serverId=" + serverId + " given local generation Id="
           + this.generationId);
@@ -2214,7 +2213,7 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("Compute degradation of serverId=" + serverId
           + " LS server generation Id=" + sHandler.getGenerationId());
@@ -2235,7 +2234,7 @@
       ReplicationServerHandler rsHandler, boolean allowResetGenId)
       throws IOException, DirectoryException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("receiving TopologyMsg from serverId=" + rsHandler.getServerId()
           + ":\n" + topoMsg);
@@ -2562,7 +2561,7 @@
       final int serverId = lastAliveCSN.getServerId();
       if (!isServerConnected(serverId))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           debug("serverId=" + serverId
               + " is not considered for eligibility ... potentially down");
@@ -2576,7 +2575,7 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debug("getEligibleCSN() returns result =" + eligibleCSN);
     }
@@ -2643,7 +2642,7 @@
           }
           catch (IOException e)
           {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+            logger.traceException(e);
             logError(ERR_CHANGELOG_ERROR_SENDING_MSG
                 .get("Replication Server "
                     + localReplicationServer.getReplicationPort() + " "
@@ -2784,7 +2783,7 @@
 
   private void debug(String message)
   {
-    TRACER.debugInfo("In ReplicationServerDomain serverId="
+    logger.trace("In ReplicationServerDomain serverId="
         + localReplicationServer.getServerId() + " for baseDN=" + baseDN
         + " and port=" + localReplicationServer.getReplicationPort()
         + ": " + message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
index df2420f..de7e5bc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
@@ -41,7 +41,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.ProtocolVersion.*;
 
 /**
@@ -257,10 +256,7 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage errMessage = ERR_RS_DISCONNECTED_DURING_HANDSHAKE.get(
           String.valueOf(getReplicationServerId()),
           session.getReadableRemoteAddress());
@@ -268,18 +264,12 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       abortStart(e.getMessageObject());
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       abortStart(LocalizableMessage.raw(e.getLocalizedMessage()));
     }
     finally
@@ -354,9 +344,9 @@
         // then it's ok and nothing else to do
         if (generationId == localGenerationId)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("In " + replicationServer.getMonitorInstanceName()
+            logger.trace("In " + replicationServer.getMonitorInstanceName()
                 + " " + this + " RS V1 with serverID=" + serverId
                 + " is connected with the right generation ID");
           }
@@ -392,10 +382,7 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage errMessage = ERR_RS_DISCONNECTED_DURING_HANDSHAKE.get(
           Integer.toString(inReplServerStartMsg.getServerId()),
           Integer.toString(replicationServer.getServerId()));
@@ -403,18 +390,12 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       abortStart(e.getMessageObject());
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       abortStart(LocalizableMessage.raw(e.getLocalizedMessage()));
     }
     finally
@@ -475,9 +456,9 @@
     */
     if (generationId == localGenerationId)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("In " + replicationServer.getMonitorInstanceName()
+        logger.trace("In " + replicationServer.getMonitorInstanceName()
             + " RS with serverID=" + serverId
             + " is connected with the right generation ID, same as local ="
             + generationId);
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeDataExpectedAcksInfo.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeDataExpectedAcksInfo.java
index 7bb883f..1a9d34b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeDataExpectedAcksInfo.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeDataExpectedAcksInfo.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 
 package org.opends.server.replication.server;
@@ -31,13 +31,11 @@
 import java.util.List;
 import java.util.Set;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.AssuredMode;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.protocol.AckMsg;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class holds every info needed about the expected acks for a received
  * update message requesting assured replication with Safe Data sub-mode.
@@ -46,10 +44,7 @@
  */
 public class SafeDataExpectedAcksInfo extends ExpectedAcksInfo
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Requested level of safe data when the update message was received. */
   private byte safeDataLevel = -1;
@@ -92,8 +87,8 @@
      if (ackingServer.isDataServer())
      {
        // Sanity check: this should never happen
-        if (debugEnabled())
-          TRACER.debugInfo("Received unexpected SD ack from DS id: "
+        if (logger.isTraceEnabled())
+          logger.trace("Received unexpected SD ack from DS id: "
           + ackingServer.getServerId() + " ack message: " + ackMsg);
         return false;
      }
@@ -104,8 +99,8 @@
     if (ackReceived)
     {
       // Sanity check: this should never happen
-      if (debugEnabled())
-        TRACER.debugInfo("Received unexpected ack from server id: " +
+      if (logger.isTraceEnabled())
+        logger.trace("Received unexpected ack from server id: " +
           ackingServerId + " ack message: " + ackMsg);
       return false;
     } else
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeReadExpectedAcksInfo.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeReadExpectedAcksInfo.java
index 4fb72c6..86983fa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeReadExpectedAcksInfo.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/SafeReadExpectedAcksInfo.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
- *      Portions copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
@@ -30,13 +30,11 @@
 import java.util.List;
 import java.util.Set;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.AssuredMode;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.protocol.AckMsg;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class holds every info needed about the expected acks for a received
  * update message requesting assured replication with Safe Read sub-mode.
@@ -45,10 +43,7 @@
  */
 public class SafeReadExpectedAcksInfo extends ExpectedAcksInfo
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Did some servers go in timeout when the matching update was sent ?. */
   private boolean hasTimeout = false;
@@ -167,8 +162,8 @@
     if (ackReceived)
     {
       // Sanity check: this should never happen
-      if (debugEnabled())
-        TRACER.debugInfo("Received unexpected ack from server id: "
+      if (logger.isTraceEnabled())
+        logger.trace("Received unexpected ack from server id: "
           + ackingServerId + " ack message: " + ackMsg);
         return false;
     } else
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java
index fa16191..71b7b31 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -45,7 +45,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class defines a server handler  :
@@ -72,8 +71,8 @@
   {
     if (providedMsg != null)
     {
-      if (debugEnabled())
-        TRACER.debugInfo("In " +
+      if (logger.isTraceEnabled())
+        logger.trace("In " +
           ((handler != null) ? handler.toString() : "Replication Server") +
           " closing session with err=" + providedMsg);
       logError(providedMsg);
@@ -364,9 +363,9 @@
   public void send(ReplicationMsg msg) throws IOException
   {
     // avoid logging anything for unit tests that include a null domain.
-    if (debugEnabled() && replicationServerDomain != null)
+    if (logger.isTraceEnabled() && replicationServerDomain != null)
     {
-      TRACER.debugInfo("In "
+      logger.trace("In "
           + replicationServerDomain.getLocalRSMonitorInstanceName() + " "
           + this + " publishes message:\n" + msg);
     }
@@ -848,8 +847,8 @@
    */
   public void process(RoutableMsg msg)
   {
-    if (debugEnabled())
-      TRACER.debugInfo("In "
+    if (logger.isTraceEnabled())
+      logger.trace("In "
           + replicationServerDomain.getLocalRSMonitorInstanceName() + " "
           + this + " processes routable msg received:" + msg);
     replicationServerDomain.process(msg, this);
@@ -862,8 +861,8 @@
    */
   public void process(ChangeTimeHeartbeatMsg msg)
   {
-    if (debugEnabled())
-      TRACER.debugInfo("In "
+    if (logger.isTraceEnabled())
+      logger.trace("In "
           + replicationServerDomain.getLocalRSMonitorInstanceName() + " "
           + this + " processes received msg:\n" + msg);
     replicationServerDomain.processChangeTimeHeartbeatMsg(this, msg);
@@ -989,8 +988,8 @@
     {
       // don't try anymore to join and return.
     }
-    if (debugEnabled())
-      TRACER.debugInfo("SH.shutdowned(" + this + ")");
+    if (logger.isTraceEnabled())
+      logger.trace("SH.shutdowned(" + this + ")");
   }
 
   /**
@@ -1065,9 +1064,9 @@
       StartMsg inStartMsg,
       StartMsg outStartMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + ":"
           + "\nSH START HANDSHAKE RECEIVED:\n" + inStartMsg
           + "\nAND REPLIED:\n" + outStartMsg);
@@ -1083,9 +1082,9 @@
       StartMsg outStartMsg,
       StartMsg inStartMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + ":"
           + "\nSH START HANDSHAKE SENT:\n" + outStartMsg + "\nAND RECEIVED:\n"
           + inStartMsg);
@@ -1101,9 +1100,9 @@
       TopologyMsg inTopoMsg,
       TopologyMsg outTopoMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + ":"
           + "\nSH TOPO HANDSHAKE RECEIVED:\n" + inTopoMsg + "\nAND REPLIED:\n"
           + outTopoMsg);
@@ -1119,9 +1118,9 @@
       TopologyMsg outTopoMsg,
       TopologyMsg inTopoMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + ":"
           + "\nSH TOPO HANDSHAKE SENT:\n" + outTopoMsg + "\nAND RECEIVED:\n"
           + inTopoMsg);
@@ -1137,9 +1136,9 @@
       StartSessionMsg inStartSessionMsg,
       TopologyMsg outTopoMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + " :"
           + "\nSH SESSION HANDSHAKE RECEIVED:\n" + inStartSessionMsg
           + "\nAND REPLIED:\n" + outTopoMsg);
@@ -1151,9 +1150,9 @@
    */
   protected void logStopReceived()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + " :"
           + "\nSH SESSION HANDSHAKE RECEIVED A STOP MESSAGE");
     }
@@ -1166,9 +1165,9 @@
   protected void logStartECLSessionHandshake(
       StartECLSessionMsg inStartECLSessionMsg)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("In " + this.replicationServer.getMonitorInstanceName()
+      logger.trace("In " + this.replicationServer.getMonitorInstanceName()
           + ", " + getClass().getSimpleName() + " " + this + " :"
           + "\nSH SESSION HANDSHAKE RECEIVED:\n" + inStartECLSessionMsg);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerReader.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerReader.java
index 6913fce..f2b3547 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerReader.java
@@ -30,13 +30,12 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.ServerStatus;
 import org.opends.server.replication.protocol.*;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.common.ServerStatus.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -52,11 +51,7 @@
  */
 public class ServerReader extends DirectoryThread
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private final Session session;
   private final ServerHandler handler;
 
@@ -84,9 +79,9 @@
   public void run()
   {
     LocalizableMessage errMessage = null;
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " starting");
+      logger.trace(getName() + " starting");
     }
     /*
      * wait on input stream
@@ -101,8 +96,8 @@
         {
           ReplicationMsg msg = session.receive();
 
-          if (debugEnabled())
-            TRACER.debugInfo("In " + getName() + " receives " + msg);
+          if (logger.isTraceEnabled())
+            logger.trace("In " + getName() + " receives " + msg);
 
           if (msg instanceof AckMsg)
           {
@@ -217,9 +212,9 @@
           {
             // Peer server is properly disconnecting: go out of here to
             // properly close the server handler going to finally block.
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo(handler
+              logger.trace(handler
                   + " has properly disconnected from this replication server "
                   + handler.getReplicationServerId());
             }
@@ -273,23 +268,23 @@
        * The thread only exits the loop above if some error condition happen.
        * Attempt to close the socket and stop the server handler.
        */
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("In " + getName() + " closing the session");
+        logger.trace("In " + getName() + " closing the session");
       }
       session.close();
       handler.doStop();
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getName() + " stopped: " + errMessage);
+        logger.trace(getName() + " stopped: " + errMessage);
       }
     }
   }
 
   private void logException(Exception e)
   {
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
           "In " + getName() + " " + stackTraceToSingleLineString(e));
   }
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerWriter.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerWriter.java
index 86aaa08..e700346 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerWriter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerWriter.java
@@ -30,14 +30,13 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.ServerStatus;
 import org.opends.server.replication.protocol.Session;
 import org.opends.server.replication.protocol.UpdateMsg;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -46,10 +45,7 @@
  */
 public class ServerWriter extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final Session session;
   private final ServerHandler handler;
@@ -89,9 +85,9 @@
   @Override
   public void run()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getName() + " starting");
+      logger.trace(getName() + " starting");
     }
 
     LocalizableMessage errMessage = null;
@@ -199,9 +195,9 @@
     finally {
       session.close();
       replicationServerDomain.stopServer(handler, false);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getName() + " stopped " + errMessage);
+        logger.trace(getName() + " stopped " + errMessage);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/StatusAnalyzer.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/StatusAnalyzer.java
index 34185c6..d236211 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/StatusAnalyzer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/StatusAnalyzer.java
@@ -22,16 +22,14 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.StatusMachineEvent;
-import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.common.ServerStatus.*;
 import static org.opends.server.replication.common.StatusMachineEvent.*;
 
@@ -49,11 +47,7 @@
 {
 
   private volatile boolean shutdown = false;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final ReplicationServerDomain replicationServerDomain;
   private volatile int degradedStatusThreshold = -1;
@@ -90,9 +84,9 @@
   @Override
   public void run()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(
+      logger.trace(
           getMessage("Directory server status analyzer starting."));
     }
 
@@ -109,10 +103,7 @@
           catch (InterruptedException e)
           {
             // Server shutdown monitor may interrupt slow threads.
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             shutdown = true;
             break;
           }
@@ -127,9 +118,9 @@
       {
         // Get number of pending changes for this server
         int nChanges = serverHandler.getRcvMsgQueueSize();
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(getMessage("Status analyzer: DS "
+          logger.trace(getMessage("Status analyzer: DS "
               + serverHandler.getServerId() + " has " + nChanges
               + " message(s) in writer queue."));
         }
@@ -166,7 +157,7 @@
     }
 
     done = true;
-    TRACER.debugInfo(getMessage("Status analyzer is terminated."));
+    logger.trace(getMessage("Status analyzer is terminated."));
   }
 
   private String getMessage(String message)
@@ -182,7 +173,7 @@
     if (replicationServerDomain.changeStatus(serverHandler, event))
     {
       // Finish job and let thread die
-      TRACER.debugInfo(
+      logger.trace(
           getMessage("Status analyzer has been interrupted and will die."));
       return true;
     }
@@ -199,9 +190,9 @@
       shutdown = true;
       shutdownLock.notifyAll();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getMessage("Shutting down status analyzer."));
+        logger.trace(getMessage("Shutting down status analyzer."));
       }
     }
   }
@@ -222,7 +213,7 @@
         n++;
         if (n >= FACTOR)
         {
-          TRACER.debugInfo(getMessage("Interrupting status analyzer."));
+          logger.trace(getMessage("Interrupting status analyzer."));
           interrupt();
         }
       }
@@ -238,9 +229,9 @@
    */
   public void setDegradedStatusThreshold(int degradedStatusThreshold)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(getMessage(
+      logger.trace(getMessage(
           "Directory server status analyzer changing threshold value to "
               + degradedStatusThreshold));
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
index 4c91cb5..27cc9f7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
@@ -33,7 +33,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.MultiDomainServerState;
 import org.opends.server.replication.common.ServerState;
@@ -48,7 +48,6 @@
 import com.forgerock.opendj.util.Pair;
 
 import static org.opends.messages.ReplicationMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -60,7 +59,7 @@
 public class ChangeNumberIndexer extends DirectoryThread
 {
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * If this is true, then the {@link #run()} method must clear its state.
@@ -518,7 +517,7 @@
       // LocalizableMessage logged here gives corrective information to the administrator.
       LocalizableMessage msg = ERR_CHANGE_NUMBER_INDEXER_UNEXPECTED_EXCEPTION.get(
           getClass().getSimpleName(), stackTraceToSingleLineString(e));
-      TRACER.debugError(msg.toString());
+      logger.trace(msg.toString());
       throw e;
     }
     catch (Exception e)
@@ -529,7 +528,7 @@
       // LocalizableMessage logged here gives corrective information to the administrator.
       LocalizableMessage msg = ERR_CHANGE_NUMBER_INDEXER_UNEXPECTED_EXCEPTION.get(
           getClass().getSimpleName(), stackTraceToSingleLineString(e));
-      TRACER.debugError(msg.toString());
+      logger.trace(msg.toString());
       throw new RuntimeException(e);
     }
     finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
index f76583b..35fe690 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
@@ -31,9 +31,8 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.changelog.api.*;
-import org.opends.server.types.DebugLogLevel;
 
 import com.sleepycat.je.*;
 
@@ -42,7 +41,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -52,7 +50,7 @@
  */
 public class DraftCNDB
 {
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private Database db;
   private ReplicationDbEnv dbenv;
@@ -251,7 +249,7 @@
     }
     catch (DatabaseException e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
     }
     finally
     {
@@ -442,13 +440,13 @@
       }
       catch (DatabaseException e)
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
         JEUtils.abort(localTxn);
         throw new ChangelogException(e);
       }
       catch (ChangelogException e)
       {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
         JEUtils.abort(localTxn);
         throw e;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
index db87b8f..006676c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
@@ -37,7 +37,7 @@
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.MultiDomainServerState;
 import org.opends.server.replication.common.ServerState;
@@ -48,7 +48,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -63,10 +62,7 @@
  */
 public class JEChangeNumberIndexDB implements ChangeNumberIndexDB, Runnable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private static int NO_KEY = 0;
 
   private DraftCNDB db;
@@ -173,8 +169,8 @@
     db.addRecord(newRecord);
     newestChangeNumber = changeNumber;
 
-    if (debugEnabled())
-      TRACER.debugInfo("In JEChangeNumberIndexDB.add, added: " + newRecord);
+    if (logger.isTraceEnabled())
+      logger.trace("In JEChangeNumberIndexDB.add, added: " + newRecord);
     return changeNumber;
   }
 
@@ -414,8 +410,8 @@
                         record.getPreviousCookie());
             csnVector = csnStartStates.get(record.getBaseDN());
 
-            if (debugEnabled())
-              TRACER.debugInfo("JEChangeNumberIndexDB:clear() - ChangeVector:"
+            if (logger.isTraceEnabled())
+              logger.trace("JEChangeNumberIndexDB:clear() - ChangeVector:"
                   + csnVector + " -- StartState:" + oldestState);
           }
           catch(Exception e)
@@ -431,8 +427,8 @@
                     && !csnVector.cover(oldestState)))
           {
             cursor.delete();
-            if (debugEnabled())
-              TRACER.debugInfo("JEChangeNumberIndexDB:clear() - deleted " + csn
+            if (logger.isTraceEnabled())
+              logger.trace("JEChangeNumberIndexDB:clear() - deleted " + csn
                   + "Not covering startState");
             continue;
           }
@@ -502,8 +498,8 @@
       }
       catch (ChangelogException e)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.WARNING, e);
+        if (logger.isTraceEnabled())
+          logger.traceException(e);
       }
       return 0;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDBCursor.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDBCursor.java
index 35dd2b0..93ec81a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDBCursor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDBCursor.java
@@ -22,16 +22,13 @@
  *
  *
  *      Copyright 2009 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.server.changelog.je;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.changelog.api.*;
 import org.opends.server.replication.server.changelog.je.DraftCNDB.*;
-import org.opends.server.types.DebugLogLevel;
-
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class allows to iterate through the changes received from a given
@@ -40,7 +37,7 @@
 public class JEChangeNumberIndexDBCursor implements
     DBCursor<ChangeNumberIndexRecord>
 {
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private DraftCNDBCursor draftCNDbCursor;
 
   /**
@@ -70,7 +67,7 @@
     }
     catch (Exception e)
     {
-      TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      logger.traceException(e);
       return null;
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index 2cdd857..7783f99 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -36,7 +36,7 @@
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.server.admin.std.server.ReplicationServerCfg;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.replication.protocol.UpdateMsg;
@@ -44,14 +44,12 @@
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.server.changelog.api.*;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.StaticUtils;
 
 import com.forgerock.opendj.util.Pair;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -60,7 +58,7 @@
 public class JEChangelogDB implements ChangelogDB, ReplicationDomainDB
 {
   /** The tracer object for the debug logger. */
-  protected static final DebugTracer TRACER = getTracer();
+  protected static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * This map contains the List of updates received from each LDAP server.
@@ -161,8 +159,8 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      if (logger.isTraceEnabled())
+        logger.traceException(e);
 
       final LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
       mb.append(e.getLocalizedMessage());
@@ -322,8 +320,8 @@
     }
     catch (ChangelogException e)
     {
-      if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      if (logger.isTraceEnabled())
+        logger.traceException(e);
 
       logError(ERR_COULD_NOT_READ_DB.get(this.dbDirectory.getAbsolutePath(),
           e.getLocalizedMessage()));
@@ -467,8 +465,8 @@
           {
             firstException = e;
           }
-          else if (debugEnabled())
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          else if (logger.isTraceEnabled())
+            logger.traceException(e);
         }
 
         cnIndexDB = null;
@@ -589,8 +587,8 @@
           {
             firstException = e;
           }
-          else if (debugEnabled())
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          else if (logger.isTraceEnabled())
+            logger.traceException(e);
         }
       }
     }
@@ -606,8 +604,8 @@
       {
         firstException = e;
       }
-      else if (debugEnabled())
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      else if (logger.isTraceEnabled())
+        logger.traceException(e);
     }
 
     if (firstException != null)
@@ -704,8 +702,8 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
+          if (logger.isTraceEnabled())
+            logger.traceException(e);
           logError(ERR_CHANGENUMBER_DATABASE.get(e.getLocalizedMessage()));
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEUtils.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEUtils.java
index c8c831b..ea88431 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEUtils.java
@@ -20,18 +20,15 @@
  *
  * CDDL HEADER END
  *
- *      Copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.replication.server.changelog.je;
 
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.Transaction;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * Utility class for JE.
  */
@@ -39,7 +36,7 @@
 {
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private JEUtils()
   {
@@ -67,7 +64,7 @@
       catch (DatabaseException ignored)
       {
         // Ignored because code is already throwing an exception
-        TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
+        logger.traceException(ignored);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index 9def6a4..488983d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -35,7 +35,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.ChangelogState;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
@@ -50,7 +50,6 @@
 import static org.opends.messages.JebMessages.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -67,7 +66,7 @@
   private static final String GENERATION_ID_TAG = "GENID";
   private static final String FIELD_SEPARATOR = " ";
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Initialize this class.
@@ -210,7 +209,7 @@
       {
         final String stringData = toString(data.getData());
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
           debug("read (" + GENERATION_ID_TAG + " generationId baseDN) OR "
               + "(serverId baseDN): " + stringData);
 
@@ -220,7 +219,7 @@
           long generationId = toLong(str[1]);
           DN baseDN = DN.valueOf(str[2]);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debug("has read baseDN=" + baseDN + " generationId=" +generationId);
 
           result.setDomainGenerationId(baseDN, generationId);
@@ -230,7 +229,7 @@
           int serverId = toInt(str[0]);
           DN baseDN = DN.valueOf(str[1]);
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debug("has read: baseDN=" + baseDN + " serverId=" + serverId);
 
           result.addServerIdToDomain(serverId, baseDN);
@@ -331,7 +330,7 @@
   public Database getOrAddDb(int serverId, DN baseDN, long generationId)
       throws ChangelogException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debug("ReplicationDbEnv.getOrAddDb(" + serverId + ", " + baseDN + ", "
           + generationId + ")");
     try
@@ -382,7 +381,7 @@
       try
       {
         data.setData(toBytes(dataString));
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
           debug("putting record in the changelogstate Db key=[" + keyString
               + "] value=[" + dataString + "]");
         changelogStateDb.put(txn, key, data);
@@ -499,7 +498,7 @@
   private void deleteFromChangelogStateDB(String keyString,
       String methodInvocation) throws ChangelogException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debug(methodInvocation + " starting");
 
     try
@@ -513,7 +512,7 @@
         {
           changelogStateDb.delete(txn, key);
           txn.commit(Durability.COMMIT_WRITE_NO_SYNC);
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
             debug(methodInvocation + " succeeded");
         }
         catch (RuntimeException dbe)
@@ -525,7 +524,7 @@
       }
       else
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
           debug(methodInvocation + " failed: key=[ " + keyString
               + "] not found");
       }
@@ -617,7 +616,7 @@
 
   private void debug(String message)
   {
-    TRACER.debugInfo("In " + replicationServer.getMonitorInstanceName() + ", "
+    logger.trace("In " + replicationServer.getMonitorInstanceName() + ", "
         + message);
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java b/opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
index faeab2b..15a784b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
@@ -22,23 +22,20 @@
  *
  *
  *      Copyright 2009 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.replication.service;
 
 import java.io.IOException;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.protocol.ChangeTimeHeartbeatMsg;
 import org.opends.server.replication.protocol.Session;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.TimeThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This thread publishes a {@link ChangeTimeHeartbeatMsg} on a given protocol
  * session at regular intervals when there are no other replication messages
@@ -48,10 +45,7 @@
  */
 public class CTHeartbeatPublisherThread extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The session on which heartbeats are to be sent.
@@ -95,9 +89,9 @@
   {
     try
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getName() + " is starting, interval is %d",
+        logger.trace(getName() + " is starting, interval is %d",
                   heartbeatInterval);
       }
 
@@ -129,10 +123,7 @@
             catch (InterruptedException e)
             {
               // Server shutdown monitor may interrupt slow threads.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               shutdown = true;
             }
           }
@@ -141,17 +132,17 @@
     }
     catch (IOException e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getName() + " could not send a heartbeat: "
+        logger.trace(getName() + " could not send a heartbeat: "
             + StaticUtils.stackTraceToSingleLineString(e));
       }
     }
     finally
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(getName() + " is exiting.");
+        logger.trace(getName() + " is exiting.");
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/service/HeartbeatMonitor.java b/opendj3-server-dev/src/server/org/opends/server/replication/service/HeartbeatMonitor.java
index 7134de6..e3b844a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/service/HeartbeatMonitor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/service/HeartbeatMonitor.java
@@ -22,18 +22,15 @@
  *
  *
  *      Copyright 2007-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2013 ForgeRock AS
+ *      Portions Copyright 2011-2014 ForgeRock AS
  */
 
 package org.opends.server.replication.service;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.protocol.Session;
-import org.opends.server.types.DebugLogLevel;
 
 import org.opends.server.api.DirectoryThread;
 
@@ -43,10 +40,7 @@
  */
 final class HeartbeatMonitor extends DirectoryThread
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -123,9 +117,9 @@
   @Override
   public void run()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(this + " is starting, expected interval is " +
+      logger.trace(this + " is starting, expected interval is " +
                 heartbeatInterval);
     }
 
@@ -171,10 +165,7 @@
             catch (InterruptedException e)
             {
               // Server shutdown monitor may interrupt slow threads.
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
               shutdown = true;
             }
           }
@@ -183,9 +174,9 @@
     }
     finally
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Heartbeat monitor is exiting");
+        logger.trace("Heartbeat monitor is exiting");
       }
       session.close();
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
index 4e01941..b03cee9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
@@ -46,18 +46,16 @@
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.server.admin.std.server.ReplicationDomainCfg;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.protocol.*;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.HostPort;
 import org.opends.server.util.ServerConstants;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.ProtocolVersion.*;
 import static org.opends.server.replication.server.ReplicationServer.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -152,11 +150,7 @@
     }
 
   }
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private volatile boolean shutdown = false;
   private final Object startStopLock = new Object();
   private volatile ReplicationDomainCfg config;
@@ -862,7 +856,7 @@
        * Connect to each replication server and get their ServerState then find
        * out which one is the best to connect to.
        */
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
         debugInfo("phase 1 : will perform PhaseOneH with each RS in order to "
             + "elect the preferred one");
 
@@ -880,7 +874,7 @@
             replicationServerInfos, serverId, getGroupId(), getGenerationID());
 
         // Best found, now initialize connection to this one (handshake phase 1)
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
           debugInfo("phase 2 : will perform PhaseOneH with the preferred RS="
               + evals.getBestRS());
 
@@ -1086,7 +1080,7 @@
       */
 
       int nChanges = ServerState.diffChanges(rsState, state);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         debugInfo("computed " + nChanges + " changes late.");
       }
@@ -1167,7 +1161,7 @@
       // Read the ReplServerStartMsg or ReplServerStartDSMsg that should
       // come back.
       ReplicationMsg msg = newSession.receive();
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         debugInfo("RB HANDSHAKE SENT:\n" + serverStartMsg + "\nAND RECEIVED:\n"
             + msg);
@@ -1243,9 +1237,9 @@
           logError(errorMessage);
         }
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(errorMessage.toString());
+          logger.trace(errorMessage.toString());
         }
       }
     }
@@ -1271,7 +1265,7 @@
       rs.session.publish(startECLSessionMsg);
 
       // FIXME ECL In the handshake phase two, should RS send back a topo msg ?
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         debugInfo("RB HANDSHAKE SENT:\n" + startECLSessionMsg);
       }
@@ -1323,7 +1317,7 @@
       // Read the TopologyMsg that should come back.
       final TopologyMsg topologyMsg = (TopologyMsg) session.receive();
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
         debugInfo("RB HANDSHAKE SENT:\n" + startSessionMsg
             + "\nAND RECEIVED:\n" + topologyMsg);
@@ -2320,7 +2314,7 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debugInfo("end restart : connected=" + rs.isConnected() + " with RS("
           + rs.getServerId() + ") genId=" + generationID);
@@ -2380,7 +2374,7 @@
         fix the problem when we finally connect.
         */
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           debugInfo("publish(): Publishing a message is not possible due to"
               + " existing connection error.");
@@ -2486,7 +2480,7 @@
           } catch (InterruptedException e1)
           {
             // ignore
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
               debugInfo("publish(): Interrupted exception raised : "
                   + e.getLocalizedMessage());
@@ -2496,7 +2490,7 @@
       } catch (InterruptedException e)
       {
         // just loop.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
           debugInfo("publish(): Interrupted exception raised."
               + e.getLocalizedMessage());
@@ -2679,7 +2673,7 @@
                       evals.getEvaluation(bestRsServerId).toString());
                 }
                 logError(message);
-                if (debugEnabled())
+                if (logger.isTraceEnabled())
                   debugInfo("best replication servers evaluation results: "
                       + evals);
                 reStart(true);
@@ -2701,10 +2695,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         if (!shutdown)
         {
@@ -2793,7 +2784,7 @@
    */
   public void stop()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debugInfo("is stopping and will close the connection to RS("
           + getRsServerId() + ")");
 
@@ -3044,7 +3035,7 @@
    */
   private void receiveTopo(TopologyMsg topoMsg, int rsServerId)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
       debugInfo("receive TopologyMsg=" + topoMsg);
 
     // Store new DS list
@@ -3113,7 +3104,7 @@
     }
     else
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
         debugInfo("is not configured to send CSN heartbeat interval");
     }
   }
@@ -3233,7 +3224,7 @@
 
   private void debugInfo(String message)
   {
-    TRACER.debugInfo(getClass().getSimpleName() + " for baseDN=" + getBaseDN()
+    logger.trace(getClass().getSimpleName() + " for baseDN=" + getBaseDN()
         + " and serverId=" + getServerId() + " " + message);
   }
 }
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationDomain.java b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationDomain.java
index d7f02b4..e50b4f1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationDomain.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationDomain.java
@@ -43,7 +43,7 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.backends.task.Task;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.protocol.*;
 import org.opends.server.tasks.InitializeTargetTask;
@@ -55,7 +55,6 @@
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.common.AssuredMode.*;
 import static org.opends.server.replication.common.StatusMachine.*;
 
@@ -110,11 +109,7 @@
    * Current status for this replicated domain.
    */
   protected ServerStatus status = ServerStatus.NOT_CONNECTED_STATUS;
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The configuration of the replication domain. */
   protected volatile ReplicationDomainCfg config;
@@ -366,8 +361,8 @@
    */
   private void receiveChangeStatus(ChangeStatusMsg csMsg)
   {
-    if (debugEnabled())
-      TRACER.debugInfo("Replication domain " + getBaseDN() +
+    if (logger.isTraceEnabled())
+      logger.trace("Replication domain " + getBaseDN() +
         " received change status message:\n" + csMsg);
 
     ServerStatus reqStatus = csMsg.getRequestedStatus();
@@ -413,8 +408,8 @@
       case BAD_GEN_ID_STATUS:
         break;
       default:
-        if (debugEnabled())
-          TRACER.debugInfo("updateDomainForNewStatus: unexpected status: " +
+        if (logger.isTraceEnabled())
+          logger.trace("updateDomainForNewStatus: unexpected status: " +
             status);
     }
   }
@@ -700,9 +695,9 @@
           return null;
         }
 
-        if (debugEnabled() && !(msg instanceof HeartbeatMsg))
+        if (logger.isTraceEnabled() && !(msg instanceof HeartbeatMsg))
         {
-          TRACER.debugVerbose("LocalizableMessage received <" + msg + ">");
+          logger.trace("LocalizableMessage received <" + msg + ">");
         }
 
         if (msg instanceof AckMsg)
@@ -745,8 +740,8 @@
             A remote error during the import will be received in the
             receiveEntryBytes() method.
             */
-            if (debugEnabled())
-              TRACER.debugInfo(
+            if (logger.isTraceEnabled())
+              logger.trace(
                   "[IE] processErrorMsg:" + getServerId() +
                   " baseDN: " + getBaseDN() +
                   " Error Msg received: " + errorMsg);
@@ -1007,8 +1002,8 @@
     @Override
     public void run()
     {
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] starting " + getName());
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] starting " + getName());
       try
       {
         initializeRemote(serverIdToInitialize, serverIdToInitialize, null,
@@ -1022,8 +1017,8 @@
         */
       }
 
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] ending " + getName());
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] ending " + getName());
     }
   }
 
@@ -1270,8 +1265,8 @@
      */
     public void setAckVal(int serverId, int numAck)
     {
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] setAckVal[" + serverId + "]=" + numAck);
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] setAckVal[" + serverId + "]=" + numAck);
 
       this.ackVals.put(serverId, numAck);
 
@@ -1294,8 +1289,8 @@
      */
     public int getSlowestServer()
     {
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] getSlowestServer" + slowestServerId
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] getSlowestServer" + slowestServerId
             + " " + this.ackVals.get(slowestServerId));
 
       return this.slowestServerId;
@@ -1480,8 +1475,8 @@
         exportRootException = ieEx != null ? ieEx : exportException;
       }
 
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] In " + broker.getReplicationMonitorInstanceName()
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] In " + broker.getReplicationMonitorInstanceName()
             + " export ends with " + " connected=" + broker.isConnected()
             + " exportRootException=" + exportRootException);
 
@@ -1502,8 +1497,8 @@
           {
             // We are still disconnected, so we wait for the listener thread
             // to reconnect - wait 10s
-            if (debugEnabled())
-              TRACER.debugInfo(
+            if (logger.isTraceEnabled())
+              logger.trace(
                 "[IE] Exporter wait for reconnection by the listener thread");
             int att=0;
             while (!broker.shuttingDown() && !broker.isConnected()
@@ -1596,8 +1591,8 @@
     final Set<Integer> replicasWeAreWaitingFor =
         new HashSet<Integer>(ieCtx.startList);
 
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
       "[IE] wait for start replicasWeAreWaitingFor=" + replicasWeAreWaitingFor);
 
     int waitResultAttempt = 0;
@@ -1607,8 +1602,8 @@
       done = true;
       for (DSInfo dsi : getReplicasList())
       {
-        if (debugEnabled())
-          TRACER.debugInfo(
+        if (logger.isTraceEnabled())
+          logger.trace(
             "[IE] wait for start dsId " + dsi.getDsId()
             + " " + dsi.getStatus()
             + " " + dsi.getGenerationId()
@@ -1639,8 +1634,8 @@
 
     ieCtx.failureList.addAll(replicasWeAreWaitingFor);
 
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
         "[IE] wait for start ends with " + ieCtx.failureList);
   }
 
@@ -1654,8 +1649,8 @@
     final Set<Integer> replicasWeAreWaitingFor =
         new HashSet<Integer>(ieCtx.startList);
 
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
         "[IE] wait for end replicasWeAreWaitingFor=" + replicasWeAreWaitingFor);
 
     /*
@@ -1736,8 +1731,8 @@
 
     ieCtx.failureList.addAll(replicasWeAreWaitingFor);
 
-    if (debugEnabled())
-      TRACER.debugInfo(
+    if (logger.isTraceEnabled())
+      logger.trace(
         "[IE] wait for end ends with " + ieCtx.failureList);
   }
 
@@ -1827,9 +1822,9 @@
         // potential disconnection of the exporter.
         msg = broker.receive(false, false, true);
 
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("[IE] In "
+          logger.trace("[IE] In "
               + broker.getReplicationMonitorInstanceName()
               + ", receiveEntryBytes " + msg);
         }
@@ -1877,9 +1872,9 @@
               final InitializeRcvAckMsg amsg = new InitializeRcvAckMsg(
                   getServerId(), entryMsg.getSenderID(), ieCtx.msgCnt);
               broker.publish(amsg, false);
-              if (debugEnabled())
+              if (logger.isTraceEnabled())
               {
-                TRACER.debugInfo("[IE] In "
+                logger.trace("[IE] In "
                     + broker.getReplicationMonitorInstanceName()
                     + ", publish InitializeRcvAckMsg" + amsg);
               }
@@ -1988,8 +1983,8 @@
   public void exportLDIFEntry(byte[] lDIFEntry, int pos, int length)
   throws IOException
   {
-    if (debugEnabled())
-      TRACER.debugInfo("[IE] Entering exportLDIFEntry entry=" +
+    if (logger.isTraceEnabled())
+      logger.trace("[IE] Entering exportLDIFEntry entry=" +
           Arrays.toString(lDIFEntry));
 
     // build the message
@@ -2025,14 +2020,14 @@
       int ourLastExportedCnt = ieCtx.msgCnt;
       int slowestCnt = ieCtx.ackVals.get(slowestServerId);
 
-      if (debugEnabled())
-        TRACER.debugInfo("[IE] Entering exportLDIFEntry waiting " +
+      if (logger.isTraceEnabled())
+        logger.trace("[IE] Entering exportLDIFEntry waiting " +
             " our=" + ourLastExportedCnt + " slowest=" + slowestCnt);
 
       if ((ourLastExportedCnt - slowestCnt) > ieCtx.initWindow)
       {
-        if (debugEnabled())
-          TRACER.debugInfo("[IE] Entering exportLDIFEntry waiting");
+        if (logger.isTraceEnabled())
+          logger.trace("[IE] Entering exportLDIFEntry waiting");
 
         // our export is too far beyond the slowest importer - let's wait
         try { Thread.sleep(100); }
@@ -2053,14 +2048,14 @@
       }
       else
       {
-        if (debugEnabled())
-          TRACER.debugInfo("[IE] slowest got to us => stop waiting");
+        if (logger.isTraceEnabled())
+          logger.trace("[IE] slowest got to us => stop waiting");
         break;
       }
     } // Waiting the slowest loop
 
-    if (debugEnabled())
-      TRACER.debugInfo("[IE] Entering exportLDIFEntry pub entry="
+    if (logger.isTraceEnabled())
+      logger.trace("[IE] Entering exportLDIFEntry pub entry="
           + Arrays.toString(lDIFEntry));
 
     boolean sent = broker.publish(entryMessage, false);
@@ -2164,9 +2159,9 @@
   public void initializeFromRemote(int source, Task initTask)
   throws DirectoryException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("[IE] Entering initializeFromRemote for " + this);
+      logger.trace("[IE] Entering initializeFromRemote for " + this);
     }
 
     LocalizableMessage errMsg = !broker.isConnected()
@@ -2243,9 +2238,9 @@
   {
     InitializeTask initFromTask = null;
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("[IE] Entering initialize - domain=" + this);
+      logger.trace("[IE] Entering initialize - domain=" + this);
     }
 
     int source = initTargetMsgReceived.getSenderID();
@@ -2293,9 +2288,9 @@
     }
     finally
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("[IE] Domain=" + this
+        logger.trace("[IE] Domain=" + this
           + " ends import with exception=" + ieCtx.getException()
           + " connected=" + broker.isConnected());
       }
@@ -2359,9 +2354,9 @@
       // ===================
       // No new attempt case
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("[IE] Domain=" + this
+        logger.trace("[IE] Domain=" + this
           + " ends initialization with exception=" + ieCtx.getException()
           + " connected=" + broker.isConnected()
           + " task=" + initFromTask
@@ -2447,9 +2442,9 @@
       }
 
       status = newStatus;
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Replication domain " + getBaseDN()
+        logger.trace("Replication domain " + getBaseDN()
             + " new status is: " + status);
       }
 
@@ -2565,9 +2560,9 @@
   public void resetGenerationId(Long generationIdNewValue)
       throws DirectoryException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("Server id " + getServerId() + " and domain "
+      logger.trace("Server id " + getServerId() + " and domain "
           + getBaseDN() + " resetGenerationId " + generationIdNewValue);
     }
 
@@ -2967,9 +2962,9 @@
         @Override
         public void run()
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Replication Listener thread starting.");
+            logger.trace("Replication Listener thread starting.");
           }
 
           // Loop processing any incoming update messages.
@@ -2994,9 +2989,9 @@
             }
           }
 
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Replication Listener thread stopping.");
+            logger.trace("Replication Listener thread stopping.");
           }
         }
       }, threadName);
@@ -3339,9 +3334,9 @@
           msg.wait(10);
         } catch (InterruptedException e)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("waitForAck method interrupted for replication " +
+            logger.trace("waitForAck method interrupted for replication " +
               "baseDN: " + getBaseDN());
           }
           break;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
index 41c0a7c..94d38e7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
@@ -39,12 +39,10 @@
 
 
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.forgerock.opendj.ldap.ByteSequence;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.SchemaMessages.*;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -58,10 +56,7 @@
 public class AciSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
   private EqualityMatchingRule defaultEqualityMatchingRule;
@@ -228,10 +223,7 @@
     }
     catch (AciException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(e.getMessageObject());
       invalidReason.append(e.getMessageObject());
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
index 21d0061..2f92103 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
@@ -45,8 +45,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -68,11 +67,7 @@
        extends AttributeSyntax<AttributeTypeDescriptionAttributeSyntaxCfg>
        implements
        ConfigurationChangeListener<AttributeTypeDescriptionAttributeSyntaxCfg> {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -244,10 +239,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
index cfee022..8b37614 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
@@ -28,7 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
@@ -37,11 +36,10 @@
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.ConditionResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -53,10 +51,7 @@
 class AuthPasswordEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -188,10 +183,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return ConditionResult.FALSE;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
index 6c80e72..91d1e6d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
@@ -37,10 +36,9 @@
 
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -52,10 +50,7 @@
 class AuthPasswordExactEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -171,10 +166,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
       {
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactMatchingRule.java
index 9dede52..61fa4ce 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactMatchingRule.java
@@ -36,7 +36,6 @@
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 import javax.security.auth.x500.X500Principal;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -48,14 +47,13 @@
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.GSERException;
 import org.opends.server.protocols.asn1.GSERParser;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.StaticUtils;
@@ -87,13 +85,7 @@
    * The GSER identifier for the rdnSequence IdentifiedChoiceValue.
    */
   private static final String GSER_ID_RDNSEQUENCE = "rdnSequence";
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -203,9 +195,9 @@
     {
       // There seems to be a problem while parsing the certificate.
       LocalizableMessage message = WARN_CERTIFICATE_MATCH_PARSE_ERROR.get(ce.getMessage());
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-         TRACER.debugWarning(message.toString());
+         logger.trace(message.toString());
       }
 
       // return the raw bytes as a fall back
@@ -220,10 +212,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the DN for some reason.  If we're supposed to use
       // strict syntax enforcement, then throw an exception.  Otherwise, log a
@@ -278,10 +267,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       // Assume the assertion value is a certificate and parse issuer and serial
       // number. If the value is not even a certificate then the raw bytes will
       // be returned.
@@ -363,10 +349,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the DN for some reason.  If we're supposed to use
       // strict syntax enforcement, then throw an exception.  Otherwise, log a
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
index b456b95..dd338d2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
@@ -43,8 +43,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -62,10 +61,7 @@
 public class DITContentRuleSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -216,10 +212,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
index 3bcbafa..a5ddbcd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
@@ -43,8 +43,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -62,10 +61,7 @@
 public class DITStructureRuleSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -216,10 +212,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
index 5378c06..8727b21 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.messages.SchemaMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -39,12 +38,11 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.AcceptRejectWarn;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 
@@ -57,10 +55,7 @@
 class DistinguishedNameEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -166,10 +161,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       // See if we should try to proceed anyway with a bare-bones normalization.
       if (DirectoryServer.getSyntaxEnforcementPolicy() ==
@@ -182,10 +174,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (DirectoryServer.getSyntaxEnforcementPolicy() ==
           AcceptRejectWarn.REJECT)
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
index 57d4c2f..267a96b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
@@ -39,8 +39,7 @@
 import org.opends.server.core.DirectoryServer;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -56,10 +55,7 @@
 public class DistinguishedNameSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -248,20 +244,14 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
 
       invalidReason.append(ERR_ATTR_SYNTAX_DN_INVALID.get(value.toString(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
index 448e167..d0c75e4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
@@ -28,17 +28,15 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
 import java.util.Collections;
 
 import org.opends.server.api.ApproximateMatchingRule;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -65,10 +63,7 @@
 class DoubleMetaphoneApproximateMatchingRule
        extends ApproximateMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1219,10 +1214,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
index 0e8690c..10a2fcb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
@@ -37,10 +36,9 @@
 
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -52,10 +50,7 @@
 class GeneralizedTimeEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -158,10 +153,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
       {
@@ -201,10 +193,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
index cfd8b23..e60bbf4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
@@ -38,10 +37,9 @@
 import org.opends.server.api.AbstractMatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -54,10 +52,7 @@
        extends AbstractMatchingRule
        implements OrderingMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -170,10 +165,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
       {
@@ -227,10 +219,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       return 0;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
index 6592ded..f41fced 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
@@ -44,13 +44,12 @@
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -66,10 +65,7 @@
 public class GeneralizedTimeSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // UTC TimeZone is assumed to never change over JVM lifetime
   private static final TimeZone TIME_ZONE_UTC_OBJ =
@@ -1012,10 +1008,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1050,10 +1043,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1199,10 +1189,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1237,10 +1224,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1297,10 +1281,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1335,10 +1316,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // This should only happen if the provided date wasn't legal
             // (e.g., September 31).
@@ -1481,10 +1459,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This should only happen if the provided date wasn't legal
       // (e.g., September 31).
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
index 72ef522..ef290e5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.messages.SchemaMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -38,10 +37,9 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.EqualityMatchingRule;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.ServerConstants;
@@ -59,10 +57,7 @@
 class IntegerFirstComponentEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -218,10 +213,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
@@ -279,10 +271,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS.get(
             String.valueOf(valueString));
@@ -331,10 +320,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT.get(
           String.valueOf(valueString));
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
index 8807ef8..b8b441d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
@@ -45,7 +45,7 @@
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -59,7 +59,6 @@
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.schema.StringPrepProfile.*;
 import static org.opends.server.util.ServerConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.messages.SchemaMessages.*;
@@ -72,10 +71,7 @@
 public class LDAPSyntaxDescriptionSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -618,10 +614,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
index 467e729..739ed85 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
@@ -45,8 +45,7 @@
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.SchemaMessages.*;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -62,10 +61,7 @@
 public class MatchingRuleSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -411,10 +407,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         invalidReason.append(de.getMessageObject());
         return false;
@@ -454,10 +447,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             invalidReason.append(de.getMessageObject());
             return false;
@@ -477,10 +467,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             invalidReason.append(de.getMessageObject());
             return false;
@@ -514,10 +501,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
 
                 invalidReason.append(de.getMessageObject());
                 return false;
@@ -548,10 +532,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           invalidReason.append(de.getMessageObject());
           return false;
@@ -574,10 +555,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           invalidReason.append(de.getMessageObject());
           return false;
@@ -611,10 +589,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           invalidReason.append(de.getMessageObject());
           return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
index d691302..24bf415 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
@@ -44,8 +44,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -63,10 +62,7 @@
 public class MatchingRuleUseSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -217,10 +213,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
index 9f52726..89f74ac 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
@@ -40,10 +40,8 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.loggers.ErrorLogger.*;
-import org.opends.server.types.DebugLogLevel;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
 import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -59,10 +57,7 @@
 public class NameAndOptionalUIDSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -250,10 +245,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the DN for some reason.  The value cannot be
       // acceptable.
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
index 85b3152..5d2d56e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
@@ -43,8 +43,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -62,10 +61,7 @@
 public class NameFormSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -215,10 +211,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
index 098744e..29bbc74 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
@@ -45,8 +45,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
@@ -66,10 +65,7 @@
 public class ObjectClassSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -219,10 +215,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       invalidReason.append(de.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
index ceb42ec..95724d7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
@@ -26,9 +26,7 @@
  */
 package org.opends.server.schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.messages.SchemaMessages.*;
 import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -54,10 +52,7 @@
 public final class SubtreeSpecificationSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
   private EqualityMatchingRule defaultEqualityMatchingRule;
@@ -256,10 +251,7 @@
 
       return true;
     } catch (DirectoryException e) {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       invalidReason.append(e.getMessageObject());
       return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
index 6da82dc..f9db469 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
@@ -43,12 +43,11 @@
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
 import static org.opends.messages.SchemaMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -66,10 +65,7 @@
 public class UTCTimeSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -912,10 +908,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE.get(
           valueString, String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
index 8694ac5..167828c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
@@ -29,7 +29,6 @@
 
 
 import static org.opends.messages.SchemaMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -40,11 +39,10 @@
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ResultCode;
 
@@ -59,10 +57,7 @@
 class UniqueMemberEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -186,10 +181,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We couldn't normalize the DN for some reason.  If we're supposed to use
       // strict syntax enforcement, then throw an exception.  Otherwise, log a
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
index 255001d..9976bdc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
@@ -28,7 +28,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
 import java.util.Collection;
@@ -37,11 +36,10 @@
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.PasswordStorageScheme;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.ConditionResult;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 
 
@@ -53,10 +51,7 @@
 class UserPasswordEqualityMatchingRule
        extends EqualityMatchingRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -186,10 +181,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return ConditionResult.FALSE;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/AddSchemaFileTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/AddSchemaFileTask.java
index 54cbf00..8efded1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/AddSchemaFileTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/AddSchemaFileTask.java
@@ -41,11 +41,10 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SchemaConfigManager;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -56,10 +55,7 @@
 public class AddSchemaFileTask
        extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The list of files to be added to the server schema. */
   TreeSet<String> filesToAdd;
@@ -133,10 +129,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_TASK_ADDSCHEMAFILE_ERROR_CHECKING_FOR_FILE.get(
               filename, schemaInstanceDirectory,
@@ -162,10 +155,7 @@
       }
       catch (ConfigException ce)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-        }
+        logger.traceException(ce);
 
         LocalizableMessage message = ERR_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE.get(
             String.valueOf(schemaFile), ce.getMessage());
@@ -174,10 +164,7 @@
       }
       catch (InitializationException ie)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-        }
+        logger.traceException(ie);
 
         LocalizableMessage message = ERR_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE.get(
             String.valueOf(schemaFile), ie.getMessage());
@@ -248,10 +235,7 @@
         }
         catch (ConfigException ce)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-          }
+          logger.traceException(ce);
 
           LocalizableMessage message = ERR_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE.
               get(String.valueOf(schemaFile), ce.getMessage());
@@ -260,10 +244,7 @@
         }
         catch (InitializationException ie)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ie);
-          }
+          logger.traceException(ie);
 
           LocalizableMessage message = ERR_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE.
               get(String.valueOf(schemaFile), ie.getMessage());
@@ -283,10 +264,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             LocalizableMessage message =
                 ERR_TASK_ADDSCHEMAFILE_CANNOT_NOTIFY_SYNC_PROVIDER.
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/ImportTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/ImportTask.java
index 225bced..1eb943c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/ImportTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/ImportTask.java
@@ -30,10 +30,8 @@
 
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.tools.makeldif.TemplateFile;
-import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.getAttributeType;
@@ -72,10 +70,7 @@
  */
 public class ImportTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -971,10 +966,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       logError(e.getMessageObject());
       return TaskState.STOPPED_BY_ERROR;
@@ -998,10 +990,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_LDIFIMPORT_CANNOT_LOCK_BACKEND.get(
             backend.getBackendID(), getExceptionMessage(e));
@@ -1017,10 +1006,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         DirectoryServer.notifyImportEnded(backend, importConfig, false);
         LocalizableMessage message = null;
@@ -1040,10 +1026,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         DirectoryServer.notifyImportEnded(backend, importConfig, false);
         LocalizableMessage message =
@@ -1068,10 +1051,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = WARN_LDIFIMPORT_CANNOT_UNLOCK_BACKEND.get(
               backend.getBackendID(), getExceptionMessage(e));
@@ -1094,10 +1074,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(e.getMessageObject());
         return TaskState.STOPPED_BY_ERROR;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTargetTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTargetTask.java
index 59c1352..33a0933 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTargetTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTargetTask.java
@@ -33,13 +33,12 @@
 import org.opends.messages.TaskMessages;
 import org.opends.server.backends.task.Task;
 import org.opends.server.backends.task.TaskState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.plugin.LDAPReplicationDomain;
 import org.opends.server.types.*;
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -48,10 +47,7 @@
  */
 public class InitializeTargetTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Config properties
   private String domainString;
@@ -117,8 +113,8 @@
   @Override
   protected TaskState runTask()
   {
-    if (debugEnabled())
-      TRACER.debugInfo("[IE] InitializeTargetTask is starting on domain: "
+    if (logger.isTraceEnabled())
+      logger.trace("[IE] InitializeTargetTask is starting on domain: "
           + domain.getBaseDNString());
 
     try
@@ -127,10 +123,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This log will go to the task log message
       LocalizableMessage message = ERR_TASK_EXECUTE_FAILED.get(
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTask.java
index c456b4e..187a0ae 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/InitializeTask.java
@@ -28,8 +28,6 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -37,7 +35,7 @@
 import org.opends.messages.TaskMessages;
 import org.opends.server.backends.task.Task;
 import org.opends.server.backends.task.TaskState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.plugin.LDAPReplicationDomain;
 import org.opends.server.types.*;
 
@@ -48,10 +46,7 @@
  */
 public class InitializeTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private String domainString;
   private int  source;
@@ -133,9 +128,9 @@
   @Override
   protected TaskState runTask()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("[IE] InitializeTask is starting on domain: %s "
+      logger.trace("[IE] InitializeTask is starting on domain: %s "
           + " from source:%d", domain.getBaseDNString(), source);
     }
     initState = getTaskState();
@@ -173,9 +168,9 @@
       initState = TaskState.STOPPED_BY_ERROR;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("[IE] InitializeTask is ending with state:%s",
+      logger.trace("[IE] InitializeTask is ending with state:%s",
           initState.toString());
     }
     return initState;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/PurgeConflictsHistoricalTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/PurgeConflictsHistoricalTask.java
index c8e081b..3fdf526 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/PurgeConflictsHistoricalTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/PurgeConflictsHistoricalTask.java
@@ -33,7 +33,7 @@
 import org.opends.messages.TaskMessages;
 import org.opends.server.backends.task.Task;
 import org.opends.server.backends.task.TaskState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.plugin.LDAPReplicationDomain;
 import org.opends.server.types.*;
@@ -41,7 +41,6 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class provides an implementation of a Directory Server task that can
@@ -55,10 +54,7 @@
    * seconds.
    */
   public static final int DEFAULT_MAX_DURATION = 60 * 60;
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private String domainString;
   private LDAPReplicationDomain domain;
@@ -85,10 +81,10 @@
 
   private static final void debugInfo(String s)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       System.out.println(LocalizableMessage.raw(s));
-      TRACER.debugInfo(s);
+      logger.trace(s);
     }
   }
 
@@ -165,7 +161,7 @@
   protected TaskState runTask()
   {
     Boolean purgeCompletedInTime = false;
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debugInfo("[PURGE] PurgeConflictsHistoricalTask is starting "
           + "on domain: " + domain.getBaseDNString()
@@ -220,7 +216,7 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
       debugInfo("[PURGE] PurgeConflictsHistoricalTask is ending " +
             "with state:" + initState.toString() +
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/RebuildTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/RebuildTask.java
index 2ec8222..78a7f35 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/RebuildTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/RebuildTask.java
@@ -37,7 +37,6 @@
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.DN;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
@@ -52,8 +51,7 @@
 
 import static org.opends.server.core.DirectoryServer.getAttributeType;
 import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
@@ -67,10 +65,7 @@
  */
 public class RebuildTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   String baseDN = null;
   ArrayList<String> indexes = null;
@@ -233,10 +228,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(e.getMessageObject());
         return TaskState.STOPPED_BY_ERROR;
@@ -300,20 +292,14 @@
       // The backend needs to be re-enabled at the end of the process.
       LocalizableMessage message =
           ERR_REBUILDINDEX_ERROR_DURING_REBUILD.get(e.getMessage());
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       logError(message);
       isBackendNeedToBeEnabled = true;
       returnCode = TaskState.STOPPED_BY_ERROR;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_REBUILDINDEX_ERROR_DURING_REBUILD.get(e.getMessage());
@@ -358,10 +344,7 @@
       }
       catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(e.getMessageObject());
         returnCode = TaskState.STOPPED_BY_ERROR;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/RestoreTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/RestoreTask.java
index 93634e2..b3427e6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/RestoreTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/RestoreTask.java
@@ -33,9 +33,7 @@
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.server.backends.task.Task;
 import org.opends.server.backends.task.TaskState;
@@ -70,10 +68,7 @@
  */
 public class RestoreTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -313,10 +308,7 @@
     }
     catch (ConfigException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_RESTOREDB_NO_BACKENDS_FOR_DN.get(
           String.valueOf(backupDirectory), configEntryDN.toString());
       logError(message);
@@ -354,10 +346,7 @@
         TaskUtils.disableBackend(backendID);
       } catch (DirectoryException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         logError(e.getMessageObject());
         return TaskState.STOPPED_BY_ERROR;
@@ -420,10 +409,7 @@
           backend = DirectoryServer.getBackend(backendID);
         } catch (DirectoryException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           logError(e.getMessageObject());
           errorsEncountered = true;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/SetGenerationIdTask.java b/opendj3-server-dev/src/server/org/opends/server/tasks/SetGenerationIdTask.java
index ba66778..8b35c99 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/SetGenerationIdTask.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/SetGenerationIdTask.java
@@ -28,8 +28,6 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -37,7 +35,7 @@
 import org.opends.messages.TaskMessages;
 import org.opends.server.backends.task.Task;
 import org.opends.server.backends.task.TaskState;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.plugin.LDAPReplicationDomain;
 import org.opends.server.replication.service.ReplicationDomain;
 import org.opends.server.types.*;
@@ -49,10 +47,7 @@
  */
 public class SetGenerationIdTask extends Task
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private String  domainString            = null;
   private ReplicationDomain domain        = null;
   private Long generationId = null;
@@ -126,9 +121,9 @@
   @Override
   protected TaskState runTask()
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("setGenerationIdTask is starting on domain %s"
+      logger.trace("setGenerationIdTask is starting on domain %s"
               + domain.getBaseDNString());
     }
 
@@ -142,9 +137,9 @@
       return TaskState.STOPPED_BY_ERROR;
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("setGenerationIdTask is ending SUCCESSFULLY");
+      logger.trace("setGenerationIdTask is ending SUCCESSFULLY");
     }
     return TaskState.COMPLETED_SUCCESSFULLY;
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tasks/TaskUtils.java b/opendj3-server-dev/src/server/org/opends/server/tasks/TaskUtils.java
index 828f9ca..0dcb46d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tasks/TaskUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tasks/TaskUtils.java
@@ -32,7 +32,6 @@
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import org.opends.server.util.ServerConstants;
 
@@ -52,7 +51,7 @@
 import org.opends.server.config.StringConfigAttribute;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.protocols.ldap.LDAPModification;
@@ -65,10 +64,7 @@
  */
 public class TaskUtils
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -453,10 +449,7 @@
         }
         catch (NumberFormatException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
index 34a6af9..059fb78 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
@@ -42,9 +42,6 @@
 import org.opends.server.types.DebugLogCategory;
 import org.opends.server.types.InitializationException;
 import org.opends.server.util.ServerConstants;
-import org.opends.server.util.StaticUtils;
-
-import com.sleepycat.je.*;
 
 /**
  * The debug log publisher implementation that writes debug messages in a
@@ -142,102 +139,6 @@
    * {@inheritDoc}
    */
   @Override
-  public void traceJEAccess(TraceSettings settings,
-                            String signature,
-                            String sourceLocation,
-                            OperationStatus status,
-                            Database database,
-                            Transaction txn, DatabaseEntry key,
-                            DatabaseEntry data, StackTraceElement[] stackTrace)
-  {
-    LogCategory category = DebugLogCategory.MESSAGE;
-
-    // Build the string that is common to category DATABASE_ACCESS.
-    StringBuilder builder = new StringBuilder();
-    builder.append(" (");
-    builder.append(status.toString());
-    builder.append(")");
-    builder.append(" db=");
-    try
-    {
-      builder.append(database.getDatabaseName());
-    }
-    catch(DatabaseException de)
-    {
-      builder.append(de.toString());
-    }
-    if (txn != null)
-    {
-      builder.append(" txnid=");
-      try
-      {
-        builder.append(txn.getId());
-      }
-      catch(DatabaseException de)
-      {
-        builder.append(de.toString());
-      }
-    }
-    else
-    {
-      builder.append(" txnid=none");
-    }
-
-    builder.append(ServerConstants.EOL);
-    if(key != null)
-    {
-      builder.append("key:");
-      builder.append(ServerConstants.EOL);
-      StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 4);
-    }
-
-    // If the operation was successful we log the same common information
-    // plus the data
-    if (status == OperationStatus.SUCCESS && data != null)
-    {
-
-      builder.append("data(len=");
-      builder.append(data.getSize());
-      builder.append("):");
-      builder.append(ServerConstants.EOL);
-      StaticUtils.byteArrayToHexPlusAscii(builder, data.getData(), 4);
-
-    }
-
-    String stack = null;
-    if(stackTrace != null)
-    {
-      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
-                                                      settings.getStackDepth());
-    }
-    publish(category, builder.toString(), stack);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void traceProtocolElement(TraceSettings settings,
-                                   String signature,
-                                   String sourceLocation,
-                                   String decodedForm,
-                                   StackTraceElement[] stackTrace)
-  {
-    LogCategory category = DebugLogCategory.MESSAGE;
-
-    String stack = null;
-    if(stackTrace != null)
-    {
-      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
-                                                      settings.getStackDepth());
-    }
-    publish(category, decodedForm, stack);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
   public void close()
   {
     // Nothing to do.
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
index 86e1ee9..88c1fd58 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
@@ -27,7 +27,6 @@
 package org.opends.server.tools;
 
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -42,7 +41,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
@@ -67,10 +66,7 @@
  */
 public class DBTest
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The error stream which this application should use. */
   private final PrintStream err;
@@ -383,9 +379,7 @@
     }
     catch (InitializationException e)
     {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       printMessage(e.getMessageObject());
       return 1;
     }
@@ -562,9 +556,7 @@
         return 0;
       }
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       printMessage(LocalizableMessage.raw(StaticUtils.stackTraceToString(e)));
       return 1;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java b/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
index 4d1e8df..b53f560 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
@@ -52,7 +52,7 @@
 import org.opends.server.core.PasswordStorageSchemeConfigManager;
 import org.opends.server.crypto.CryptoManagerSync;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.AuthPasswordSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.*;
@@ -63,7 +63,6 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -79,11 +78,7 @@
  */
 public class EncodePassword
 {
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   /**
@@ -891,9 +886,7 @@
       DN configEntryDN = DN.valueOf(ConfigConstants.DN_BACKEND_BASE);
       backendRoot   = DirectoryServer.getConfigEntry(configEntryDN);
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE.get(
           getExceptionMessage(e));
       throw new ConfigException(message, e);
@@ -915,9 +908,7 @@
             backendClass = DirectoryServer.loadClass(className);
             backend = (Backend) backendClass.newInstance();
           } catch (Exception e) {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             LocalizableMessage message =
               ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
                   String.valueOf(className),
@@ -932,10 +923,7 @@
             backend.configureBackend(backendCfg);
             backend.initializeBackend();
           } catch (Exception e) {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             LocalizableMessage message =
               ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
                   String.valueOf(className),
@@ -947,9 +935,7 @@
             DirectoryServer.registerBackend(backend);
           } catch (Exception e)
           {
-            if (debugEnabled()) {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
             LocalizableMessage message =
               WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(
                   backendCfg.getBackendId(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
index a68b07a..293ad3e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
@@ -40,12 +40,12 @@
 import java.io.PrintStream;
 import java.security.KeyStoreException;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.ldap.LdapName;
 
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.messages.QuickSetupMessages;
 import org.opends.messages.ToolMessages;
 import org.opends.quicksetup.ApplicationException;
@@ -232,10 +232,7 @@
 
   private Boolean lastResetStartServer = null;
 
-  /**
-   * The Logger.
-   */
-  static private final Logger LOG = Logger.getLogger(InstallDS.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The argument parser. */
   private InstallDSArgumentParser argParser;
@@ -363,8 +360,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Error while trying to update the contents of "+
-            "the set-java-home file in test only mode: "+t, t);
+        logger.warn(LocalizableMessage.raw("Error while trying to update the contents of "+
+            "the set-java-home file in test only mode: "+t, t));
       }
       // Test that we are running a compatible java 1.6 version.
       try
@@ -511,7 +508,7 @@
           userApproved = true;
           break;
         case CANCEL:
-          LOG.log(Level.INFO, "User cancelled setup.");
+          logger.debug(LocalizableMessage.raw("User cancelled setup."));
           return ErrorReturnCode.ERROR_USER_CANCELLED.getReturnCode();
         case PRINT_EQUIVALENT_COMMAND_LINE:
           printEquivalentCommandLine(uData);
@@ -526,7 +523,7 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.WARNING, "Error resetting arg parser: "+t, t);
+            logger.warn(LocalizableMessage.raw("Error resetting arg parser: "+t, t));
           }
           userApproved = false;
         }
@@ -609,7 +606,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.SEVERE, "Unexpected error: "+ce, ce);
+          logger.error(LocalizableMessage.raw("Unexpected error: "+ce, ce));
           throw new InitializationException(LocalizableMessage.EMPTY, null);
         }
       }
@@ -977,7 +974,7 @@
 
       while (pwd1 == null)
       {
-        pwd1 = readPassword(INFO_INSTALLDS_PROMPT_ROOT_PASSWORD.get(), LOG);
+        pwd1 = readPassword(INFO_INSTALLDS_PROMPT_ROOT_PASSWORD.get(), logger);
         if ((pwd1 == null) || "".equals(pwd1))
         {
           pwd1 = null;
@@ -987,7 +984,7 @@
         }
       }
       String pwd2 =
-        readPassword(INFO_INSTALLDS_PROMPT_CONFIRM_ROOT_PASSWORD.get(), LOG);
+        readPassword(INFO_INSTALLDS_PROMPT_CONFIRM_ROOT_PASSWORD.get(), logger);
 
       if (pwd1.equals(pwd2))
       {
@@ -1046,7 +1043,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         }
       }
       else
@@ -1168,7 +1165,7 @@
             catch (CLIException ce)
             {
               portNumber = -1;
-              LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+              logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
             }
           }
           prompted = true;
@@ -1242,7 +1239,7 @@
       catch (CLIException ce)
       {
         prompt = true;
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
     }
     NewSuffixOptions dataOptions;
@@ -1305,7 +1302,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         }
       }
       String rejectedFile = argParser.rejectedImportFileArg.getValue();
@@ -1324,7 +1321,7 @@
           }
           catch (CLIException ce)
           {
-            LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+            logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
           }
         }
       }
@@ -1344,7 +1341,7 @@
           }
           catch (CLIException ce)
           {
-            LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+            logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
           }
         }
       }
@@ -1447,7 +1444,7 @@
       catch (CLIException ce)
       {
         populateType = POPULATE_TYPE_BASE_ONLY;
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
 
       if (populateType == POPULATE_TYPE_IMPORT_FROM_LDIF)
@@ -1473,7 +1470,7 @@
           }
           catch (CLIException ce)
           {
-            LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+            logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
           }
         }
         String rejectedFile = argParser.rejectedImportFileArg.getValue();
@@ -1492,7 +1489,7 @@
             }
             catch (CLIException ce)
             {
-              LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+              logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
             }
           }
         }
@@ -1511,7 +1508,7 @@
             }
             catch (CLIException ce)
             {
-              LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+              logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
             }
           }
         }
@@ -1598,7 +1595,7 @@
       }
       catch (CLIException ce)
       {
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
     }
     else
@@ -1621,7 +1618,7 @@
       }
       catch (CLIException ce)
       {
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
     }
     else
@@ -1740,7 +1737,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
           certType = SELF_SIGNED;
         }
         if (certType == SELF_SIGNED)
@@ -1813,7 +1810,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         }
       }
     }
@@ -1842,7 +1839,7 @@
       }
       catch (CLIException ce)
       {
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         startServer = true;
       }
     }
@@ -2099,7 +2096,7 @@
           catch (CLIException ce)
           {
             path = "";
-            LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+            logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
           }
 
           prompted = true;
@@ -2134,7 +2131,7 @@
                     String.valueOf(LIMIT_KEYSTORE_PASSWORD_PROMPT)));
           }
           pwd = readPassword(
-                INFO_INSTALLDS_PROMPT_KEYSTORE_PASSWORD.get(), LOG);
+                INFO_INSTALLDS_PROMPT_KEYSTORE_PASSWORD.get(), logger);
           nPasswordPrompts ++;
         }
       }
@@ -2310,7 +2307,7 @@
       catch (CLIException ce)
       {
         s = "";
-        LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
       }
       if (s.equals(""))
       {
@@ -2383,7 +2380,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         }
       }
     }
@@ -2546,7 +2543,7 @@
     catch (CLIException ce)
     {
       returnValue = ConfirmCode.CANCEL;
-      LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
     }
     return returnValue;
   }
@@ -2612,7 +2609,7 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error resetting arguments: "+t, t);
+      logger.warn(LocalizableMessage.raw("Error resetting arguments: "+t, t));
     }
   }
 
@@ -2635,7 +2632,7 @@
         }
         catch (CLIException ce)
         {
-          LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+          logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
index f57d3d6..b5b8f95 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
@@ -33,11 +33,11 @@
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.opends.admin.ads.util.ConnectionUtils;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.Installation;
 import org.opends.quicksetup.UserData;
@@ -100,8 +100,7 @@
   IntegerArgument   connectTimeoutArg = null;
   BooleanArgument   acceptLicense;
 
-  private static final Logger LOG = Logger.getLogger(
-      InstallDSArgumentParser.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The default constructor for this class.
@@ -439,7 +438,7 @@
     }
     catch (ArgumentException ae)
     {
-      LOG.log(Level.SEVERE, "Error parsing arguments: "+ae, ae);
+      logger.error(LocalizableMessage.raw("Error parsing arguments: "+ae, ae));
       errorMessages.add(ae.getMessageObject());
     }
 
@@ -583,8 +582,8 @@
     }
     catch (ArgumentException ae)
     {
-      LOG.log(Level.SEVERE, "Unexpected error.  "+
-          "Assuming that it is caused by a previous parsing issue: "+ae, ae);
+      logger.error(LocalizableMessage.raw("Unexpected error.  "+
+          "Assuming that it is caused by a previous parsing issue: "+ae, ae));
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
index 7848411..dc9208a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
@@ -40,7 +40,7 @@
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.controls.LDAPAssertionRequestControl;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.ldap.CompareRequestProtocolOp;
 import org.opends.server.protocols.ldap.CompareResponseProtocolOp;
@@ -60,7 +60,6 @@
 import org.opends.server.util.args.StringArgument;
 
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -73,10 +72,7 @@
  */
 public class LDAPCompare
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -255,10 +251,7 @@
         responseMessage = connection.getLDAPReader().readMessage();
       } catch(ASN1Exception ae)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-        }
+        logger.traceException(ae);
         if (!compareOptions.continueOnError())
         {
           String message = LDAPToolUtils.getMessageForConnectionException(ae);
@@ -761,10 +754,7 @@
         }
         catch (ParseException e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           err.println(wrapText(
                   INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE.get(),
@@ -803,10 +793,7 @@
       portNumber = port.getIntValue();
     } catch (ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -824,10 +811,7 @@
       connectionOptions.setVersionNumber(versionNumber);
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -859,10 +843,7 @@
         bindPasswordValue = new String(pwChars);
       } catch(Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -1033,10 +1014,7 @@
         }
         catch (Throwable t)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, t);
-          }
+          logger.traceException(t);
           String details = t.getMessage();
           if (details == null)
           {
@@ -1067,10 +1045,7 @@
       return SUCCESS;
     } catch(LDAPException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
       LDAPToolUtils.printErrorMessage(
               err, le.getMessageObject(),
               le.getResultCode(),
@@ -1080,10 +1055,7 @@
       return code;
     } catch(LDAPConnectionException lce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
-      }
+      logger.traceException(lce);
       LDAPToolUtils.printErrorMessage(err,
                                       lce.getMessageObject(),
                                       lce.getResultCode(),
@@ -1093,10 +1065,7 @@
       return code;
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return OPERATIONS_ERROR;
     } finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
index 8046fde..81354aa 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
@@ -42,7 +42,7 @@
 import org.opends.server.controls.PasswordPolicyResponseControl;
 import org.opends.server.controls.PasswordPolicyWarningType;
 import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.loggers.debug.TraceSettings;
 import org.opends.server.protocols.ldap.ExtendedRequestProtocolOp;
 import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
@@ -51,13 +51,11 @@
 import org.opends.server.protocols.ldap.UnbindRequestProtocolOp;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.Control;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.LDAPException;
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -70,10 +68,7 @@
  */
 public class LDAPConnection
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The hostname to connect to.
   private String hostName = null;
@@ -189,8 +184,7 @@
     if(connectionOptions.isVerbose())
     {
       ConsoleDebugLogPublisher publisher = new ConsoleDebugLogPublisher(err);
-      publisher.addTraceSettings(null,
-          new TraceSettings(DebugLogLevel.VERBOSE));
+      publisher.addTraceSettings(null, new TraceSettings());
       DebugLogger.addDebugLogPublisher(publisher);
     }
 
@@ -208,10 +202,7 @@
       }
       catch (Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         throw new LDAPConnectionException(LocalizableMessage.raw(ex.getMessage()), ex);
       }
 
@@ -229,18 +220,12 @@
         msg = ldapReader.readMessage();
       }catch (LDAPException ex1)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex1);
-        }
+        logger.traceException(ex1);
         throw new LDAPConnectionException(LocalizableMessage.raw(ex1.getMessage()), ex1
             .getResultCode(), null, ex1);
       } catch (Exception ex1)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex1);
-        }
+        logger.traceException(ex1);
         throw new LDAPConnectionException(LocalizableMessage.raw(ex1.getMessage()), ex1);
       }
       ExtendedResponseProtocolOp res = msg.getExtendedResponseProtocolOp();
@@ -275,10 +260,7 @@
       throw e;
     } catch(Exception ex2)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex2);
-      }
+      logger.traceException(ex2);
       throw new LDAPConnectionException(LocalizableMessage.raw(ex2.getMessage()), ex2);
     }
 
@@ -294,10 +276,7 @@
       }
     } catch(IOException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       // It doesn't matter too much if this throws, so ignore it.
     }
 
@@ -471,10 +450,7 @@
       }
     } catch(ClientException ce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-      }
+      logger.traceException(ce);
       throw new LDAPConnectionException(ce.getMessageObject(), ce.getExitCode(),
                                         null, ce);
     } catch (LDAPException le) {
@@ -490,10 +466,7 @@
           .getCause());
     } catch(Exception ex)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new LDAPConnectionException(
               LocalizableMessage.raw(ex.getLocalizedMessage()),ex);
     }
@@ -508,10 +481,7 @@
         catch (SocketException e)
         {
           e.printStackTrace();
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
@@ -562,10 +532,7 @@
     {
       // if we get there, something went awfully wrong while creatng one socket,
       // no need to continue the for loop.
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new LDAPConnectionException(LocalizableMessage.raw(ex.getMessage()), ex);
     }
     if (ce != null)
@@ -622,10 +589,7 @@
     {
       // if we get there, something went awfully wrong while creatng one socket,
       // no need to continue the for loop.
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+      logger.traceException(ex);
       throw new LDAPConnectionException(LocalizableMessage.raw(ex.getMessage()), ex);
     }
     if (ce != null)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
index bbc26e7..4f9fbdf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
@@ -55,10 +55,8 @@
 import org.opends.server.util.args.IntegerArgument;
 import org.opends.server.util.args.StringArgument;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import org.opends.server.controls.SubtreeDeleteControl;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -72,10 +70,7 @@
  */
 public class LDAPDelete
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -196,10 +191,7 @@
         responseMessage = connection.getLDAPReader().readMessage();
       } catch(ASN1Exception ae)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-        }
+        logger.traceException(ae);
         if (!deleteOptions.continueOnError())
         {
           String msg = LDAPToolUtils.getMessageForConnectionException(ae);
@@ -609,10 +601,7 @@
       portNumber = port.getIntValue();
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -630,10 +619,7 @@
       connectionOptions.setVersionNumber(versionNumber);
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -664,10 +650,7 @@
         bindPasswordValue = new String(pwChars);
       } catch(Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -834,10 +817,7 @@
       }
     } catch(LDAPException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
       LDAPToolUtils.printErrorMessage(err, le.getMessageObject(),
                                       le.getResultCode(),
                                       le.getErrorMessage(),
@@ -846,10 +826,7 @@
       return code;
     } catch(LDAPConnectionException lce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
-      }
+      logger.traceException(lce);
       LDAPToolUtils.printErrorMessage(err, lce.getMessageObject(),
                                       lce.getResultCode(),
                                       lce.getErrorMessage(),
@@ -858,10 +835,7 @@
       return code;
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
     } finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPModify.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPModify.java
index 05a9dd9..0c218e4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPModify.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPModify.java
@@ -40,7 +40,7 @@
 
 import org.opends.server.controls.*;
 import org.opends.server.controls.ProxiedAuthV2Control;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.plugins.ChangeNumberControlPlugin;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.ldap.AddRequestProtocolOp;
@@ -76,7 +76,6 @@
 import org.opends.server.util.args.StringArgument;
 
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -90,10 +89,7 @@
  */
 public class LDAPModify
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -161,10 +157,7 @@
       reader = new LDIFReader(importConfig);
     } catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message =
           ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ.get(fileNameValue,
                   e.getLocalizedMessage());
@@ -186,10 +179,7 @@
         entry = reader.readChangeRecord(modifyOptions.getDefaultAdd());
       } catch (LDIFException le)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+        logger.traceException(le);
         if (!modifyOptions.continueOnError())
         {
           try
@@ -198,10 +188,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
           }
 
           LocalizableMessage message = ERR_LDIF_FILE_INVALID_LDIF_ENTRY.get(
@@ -217,10 +204,7 @@
         }
       } catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         if (!modifyOptions.continueOnError())
         {
@@ -230,10 +214,7 @@
           }
           catch (Exception e2)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-            }
+            logger.traceException(e2);
           }
 
           LocalizableMessage message =
@@ -258,10 +239,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
 
         break;
@@ -340,10 +318,7 @@
           responseMessage = connection.getLDAPReader().readMessage();
         } catch(ASN1Exception ae)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-          }
+          logger.traceException(ae);
           LocalizableMessage message = INFO_OPERATION_FAILED.get(operationType);
           err.println(wrapText(message, MAX_LINE_WIDTH));
           err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
@@ -417,10 +392,7 @@
             // This shouldnt happen but if it does debug
             // log it, set the error code to OTHER and
             // fall thru.
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, ce);
-            }
+            logger.traceException(ce);
             resultCode = ResultCode.OTHER.getIntValue();
             errorMessage = null;
             matchedDN = null;
@@ -964,10 +936,7 @@
       portNumber = port.getIntValue();
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -985,10 +954,7 @@
       connectionOptions.setVersionNumber(versionNumber);
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -1019,10 +985,7 @@
         bindPasswordValue = new String(pwChars);
       } catch(Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -1224,10 +1187,7 @@
       ldapModify.readAndExecute(connection, fileNameValue, modifyOptions);
     } catch(LDAPException le)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, le);
-      }
+      logger.traceException(le);
       LDAPToolUtils.printErrorMessage(err, le.getMessageObject(),
                                       le.getResultCode(),
                                       le.getErrorMessage(), le.getMatchedDN());
@@ -1235,10 +1195,7 @@
       return code;
     } catch(LDAPConnectionException lce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
-      }
+      logger.traceException(lce);
       LDAPToolUtils.printErrorMessage(err, lce.getMessageObject(),
                                       lce.getResultCode(),
                                       lce.getErrorMessage(),
@@ -1247,18 +1204,12 @@
       return code;
     } catch (FileNotFoundException fe)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, fe);
-      }
+      logger.traceException(fe);
       err.println(wrapText(fe.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return OPERATIONS_ERROR;
     } finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPReader.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPReader.java
index 902e729..0114cfd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPReader.java
@@ -30,12 +30,9 @@
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.protocols.ldap.LDAPMessage;
 import org.opends.server.types.LDAPException;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.RecordingInputStream;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.ServerConstants;
 
 import java.io.IOException;
@@ -47,10 +44,7 @@
  */
 public class LDAPReader
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private Socket socket;
   private ASN1Reader asn1Reader;
@@ -91,7 +85,7 @@
   public LDAPMessage readMessage()
        throws IOException, ASN1Exception, LDAPException
   {
-    debugInputStream.setRecordingEnabled(debugEnabled());
+    debugInputStream.setRecordingEnabled(logger.isTraceEnabled());
 
     if(!asn1Reader.hasNextElement())
     {
@@ -114,8 +108,8 @@
       builder.append(ServerConstants.EOL);
       builder.append(bytesRead.toHexPlusAsciiString(4));
 
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, builder.toString());
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, message.toString());
+      logger.trace(builder.toString());
+      logger.trace(message.toString());
     }
 
     return message;
@@ -132,10 +126,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
     if (socket != null)
@@ -146,10 +137,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPSearch.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPSearch.java
index 4ff4d9e..6f7f053 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPSearch.java
@@ -37,7 +37,7 @@
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.controls.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.*;
 import org.opends.server.util.Base64;
 import org.opends.server.util.EmbeddedUtils;
@@ -52,7 +52,6 @@
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -66,10 +65,7 @@
  */
 public class LDAPSearch
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The fully-qualified name of this class.
@@ -279,10 +275,7 @@
                     }
                     catch (Exception e)
                     {
-                      if (debugEnabled())
-                      {
-                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-                      }
+                      logger.traceException(e);
                     }
                   }
                 }
@@ -405,10 +398,7 @@
 
         } catch(ASN1Exception ae)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-          }
+          logger.traceException(ae);
           throw new IOException(ae.getMessage());
         }
       }
@@ -1133,10 +1123,7 @@
           filters.add(LDAPFilter.decode(filterString));
         } catch (LDAPException le)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, le);
-          }
+          logger.traceException(le);
           err.println(wrapText(le.getMessage(), MAX_LINE_WIDTH));
           return CLIENT_SIDE_PARAM_ERROR;
         }
@@ -1193,10 +1180,7 @@
       portNumber = port.getIntValue();
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -1215,10 +1199,7 @@
       connectionOptions.setVersionNumber(versionNumber);
     } catch(ArgumentException ae)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
-      }
+      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -1258,10 +1239,7 @@
         bindPasswordValue = new String(pwChars);
       } catch(Exception ex)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-        }
+        logger.traceException(ex);
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -1677,10 +1655,7 @@
         }
       } catch(Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -1849,10 +1824,7 @@
       }
       else
       {
-      if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, le);
-        }
+      logger.traceException(le);
 
         LDAPToolUtils.printErrorMessage(err, le.getMessageObject(), code,
             le.getErrorMessage(), le.getMatchedDN());
@@ -1860,10 +1832,7 @@
       return code;
     } catch(LDAPConnectionException lce)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
-      }
+      logger.traceException(lce);
       LDAPToolUtils.printErrorMessage(err,
                                       lce.getMessageObject(),
                                       lce.getResultCode(),
@@ -1873,10 +1842,7 @@
       return code;
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
     } finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPWriter.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPWriter.java
index 28fd875..83be826 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPWriter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPWriter.java
@@ -30,10 +30,7 @@
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.ldap.LDAPMessage;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.RecordingOutputStream;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.util.ServerConstants;
@@ -48,10 +45,7 @@
  */
 public class LDAPWriter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   Socket socket;
   ASN1Writer asn1Writer;
@@ -88,9 +82,9 @@
   public void writeMessage(LDAPMessage message)
        throws IOException
   {
-    if(debugEnabled())
+    if(logger.isTraceEnabled())
     {
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, message.toString());
+      logger.trace(message.toString());
       debugOutputStream.setRecordingEnabled(true);
     }
 
@@ -109,7 +103,7 @@
       builder.append(ServerConstants.EOL);
       builder.append(bytesRead.toHexPlusAsciiString(4));
 
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, builder.toString());
+      logger.trace(builder.toString());
     }
   }
 
@@ -124,10 +118,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
 
 
@@ -139,10 +130,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/SSLConnectionFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/SSLConnectionFactory.java
index cb2a074..1fbe688 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/SSLConnectionFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/SSLConnectionFactory.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.tools;
 
@@ -44,13 +44,11 @@
 import javax.net.ssl.X509TrustManager;
 
 import org.opends.server.extensions.BlindTrustManagerProvider;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.ExpirationCheckTrustManager;
 import org.opends.server.util.SelectableCertificateKeyManager;
 
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 
 /**
@@ -58,10 +56,7 @@
  */
 public class SSLConnectionFactory
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   private SSLSocketFactory sslSocketFactory = null;
@@ -288,10 +283,7 @@
 
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new SSLConnectionException(
               ERR_TOOLS_CANNOT_LOAD_KEYSTORE_FILE.get(keyStoreFile), e);
@@ -307,10 +299,7 @@
       return keyManagerFactory.getKeyManagers();
     } catch(Exception ke)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ke);
-      }
+      logger.traceException(ke);
 
       throw new SSLConnectionException(
               ERR_TOOLS_CANNOT_INIT_KEYMANAGER.get(keyStoreFile), ke);
@@ -382,10 +371,7 @@
       inputStream.close();
     } catch(Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new SSLConnectionException(
               ERR_TOOLS_CANNOT_LOAD_TRUSTSTORE_FILE.get(trustStoreFile), e);
@@ -401,10 +387,7 @@
       return trustManagerFactory.getTrustManagers();
     } catch(Exception ke)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ke);
-      }
+      logger.traceException(ke);
 
       throw new SSLConnectionException(
               ERR_TOOLS_CANNOT_INIT_TRUSTMANAGER.get(trustStoreFile), ke);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index 6537c03..1e49ad7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -31,7 +31,6 @@
 import java.io.BufferedReader;
 import static org.opends.messages.DSConfigMessages.*;
 import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.tools.dsconfig.ArgumentExceptionFactory.*;
 import static org.opends.server.util.ServerConstants.PROPERTY_SCRIPT_NAME;
@@ -68,9 +67,8 @@
 import org.opends.server.admin.client.ManagedObjectDecodingException;
 import org.opends.server.admin.client.MissingMandatoryPropertiesException;
 import org.opends.server.admin.client.OperationRejectedException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.tools.ClientException;
-import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.InitializationException;
 import org.opends.server.util.BuildVersion;
 import org.opends.server.util.EmbeddedUtils;
@@ -289,11 +287,7 @@
    * customization.
    */
   public static final String GENERIC_TYPE = "generic";
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // This CLI is always using the administration connector with SSL
   private static final boolean alwaysSSL = true;
@@ -1031,9 +1025,7 @@
 
       return 1;
     } catch (Exception e) {
-      if (debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       println(LocalizableMessage.raw(StaticUtils.stackTraceToString(e)));
       return 1;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/LocalPurgeHistorical.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/LocalPurgeHistorical.java
index b52dc7a..c795684 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/LocalPurgeHistorical.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/LocalPurgeHistorical.java
@@ -30,10 +30,10 @@
 import static org.opends.messages.CoreMessages.*;
 
 import java.io.File;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import org.opends.quicksetup.util.ProgressMessageFormatter;
 import org.opends.server.replication.plugin.LDAPReplicationDomain;
 import org.opends.server.types.DN;
@@ -55,8 +55,7 @@
  */
 public class LocalPurgeHistorical
 {
-  private static final Logger LOG =
-    Logger.getLogger(LocalPurgeHistorical.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private final PurgeHistoricalUserData uData;
   private final ConsoleApplication app;
@@ -119,8 +118,8 @@
         ERR_CANNOT_LOAD_CONFIG_HANDLER_CLASS.get(
             configClass, StaticUtils.stackTraceToSingleLineString(e));
       app.println(message);
-      LOG.log(Level.SEVERE, "Error loading configuration class "+configClass+
-          ": "+e, e);
+      logger.error(LocalizableMessage.raw("Error loading configuration class "+configClass+
+          ": "+e, e));
       return ReplicationCliReturnCode.ERROR_LOCAL_PURGE_HISTORICAL_CLASS_LOAD;
     }
 
@@ -141,8 +140,8 @@
         ERR_CANNOT_LOAD_CONFIG_HANDLER_CLASS.get(
             configClass, StaticUtils.stackTraceToSingleLineString(ode));
       app.println(message);
-      LOG.log(Level.SEVERE, "Error starting server with file "+configFile+
-          ": "+ode, ode);
+      logger.error(LocalizableMessage.raw("Error starting server with file "+configFile+
+          ": "+ode, ode));
       return ReplicationCliReturnCode.ERROR_LOCAL_PURGE_HISTORICAL_SERVER_START;
     }
     pointAdder.stop();
@@ -188,7 +187,7 @@
 
   private ReplicationCliReturnCode handleGenericExecuting(OpenDsException ode)
   {
-    LOG.log(Level.SEVERE, "Error executing purge historical: "+ode, ode);
+    logger.error(LocalizableMessage.raw("Error executing purge historical: "+ode, ode));
     app.println();
     app.println(ERR_REPLICATION_PURGE_HISTORICAL_EXECUTING.get(
         ode.getMessageObject()));
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index 69915c6..838b743 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -94,8 +94,8 @@
 import javax.naming.ldap.InitialLdapContext;
 import java.io.*;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.admin.ads.ServerDescriptor.*;
 import static org.opends.messages.AdminToolMessages.*;
@@ -144,8 +144,7 @@
 
   private boolean forceNonInteractive;
 
-  private static final Logger LOG =
-    Logger.getLogger(ReplicationCliMain.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Always use SSL with the administration connector
   private final boolean useSSL = true;
@@ -313,7 +312,7 @@
       LocalizableMessage message =
         ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage());
       println(message);
-      LOG.log(Level.SEVERE, "Complete error stack:", ae);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ae));
       returnValue = CANNOT_INITIALIZE_ARGS;
     }
 
@@ -340,7 +339,7 @@
         println(message);
         println();
         println(LocalizableMessage.raw(argParser.getUsage()));
-        LOG.log(Level.SEVERE, "Complete error stack:", ae);
+        logger.error(LocalizableMessage.raw("Complete error stack:", ae));
         returnValue = ERROR_USER_DATA;
       }
     }
@@ -861,7 +860,7 @@
         println();
         println(getCriticalExceptionMessage(rce));
         returnValue = rce.getErrorCode();
-        LOG.log(Level.SEVERE, "Complete error stack:", rce);
+        logger.error(LocalizableMessage.raw("Complete error stack:", rce));
       }
     }
     else
@@ -969,8 +968,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error printing equivalent command-line: "+t,
-            t);
+        logger.error(LocalizableMessage.raw("Error printing equivalent command-line: "+t,
+            t));
       }
     }
   }
@@ -995,7 +994,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
 
     if (ctx != null)
@@ -1016,7 +1015,7 @@
           println();
           println(getCriticalExceptionMessage(rce));
           returnValue = rce.getErrorCode();
-          LOG.log(Level.SEVERE, "Complete error stack:", rce);
+          logger.error(LocalizableMessage.raw("Complete error stack:", rce));
         }
       }
       else
@@ -1092,12 +1091,12 @@
       {
         DirContext dirCtx = ctx.createSubcontext(dn, attrs);
         taskCreated = true;
-        LOG.log(Level.INFO, "created task entry: "+attrs);
+        logger.debug(LocalizableMessage.raw("created task entry: "+attrs));
         dirCtx.close();
       }
       catch (NameAlreadyBoundException ex)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ex);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ex));
         LocalizableMessage msg = ERR_LAUNCHING_PURGE_HISTORICAL.get();
         ReplicationCliReturnCode code = ERROR_LAUNCHING_PURGE_HISTORICAL;
         throw new ReplicationCliException(
@@ -1105,7 +1104,7 @@
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ne));
         LocalizableMessage msg = ERR_LAUNCHING_PURGE_HISTORICAL.get();
         ReplicationCliReturnCode code = ERROR_LAUNCHING_PURGE_HISTORICAL;
         throw new ReplicationCliException(
@@ -1158,7 +1157,7 @@
         {
           if (!logMsg.equals(lastLogMsg))
           {
-            LOG.log(Level.INFO, logMsg);
+            logger.debug(LocalizableMessage.raw(logMsg));
             lastLogMsg = logMsg;
           }
         }
@@ -1183,13 +1182,13 @@
 
           if (helper.isCompletedWithErrors(state))
           {
-            LOG.log(Level.WARNING, "Completed with error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Completed with error: "+errorMsg));
             println(errorMsg);
           }
           else if (!helper.isSuccessful(state) ||
               helper.isStoppedByError(state))
           {
-            LOG.log(Level.WARNING, "Error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Error: "+errorMsg));
             ReplicationCliReturnCode code = ERROR_LAUNCHING_PURGE_HISTORICAL;
             throw new ReplicationCliException(errorMsg, code, null);
           }
@@ -1408,7 +1407,7 @@
                 {
                   if (askConfirmation(
                       INFO_REPLICATION_PURGE_HISTORICAL_PROMPT.get(dn), true,
-                      LOG))
+                      logger))
                   {
                     suffixes.add(dn);
                   }
@@ -1502,7 +1501,7 @@
             promptForConnection =
               !askConfirmation(
                   INFO_REPLICATION_PURGE_HISTORICAL_LOCAL_PROMPT.get(),
-                  true, LOG);
+                  true, logger);
           }
           catch (CLIException ce)
           {
@@ -1542,7 +1541,7 @@
         }
         catch (ClientException ce)
         {
-          LOG.log(Level.WARNING, "Client exception "+ce);
+          logger.warn(LocalizableMessage.raw("Client exception "+ce));
           println();
           println(ce.getMessageObject());
           println();
@@ -1550,7 +1549,7 @@
         }
         catch (ArgumentException ae)
         {
-          LOG.log(Level.WARNING, "Argument exception "+ae);
+          logger.warn(LocalizableMessage.raw("Argument exception "+ae));
           println();
           println(ae.getMessageObject());
           println();
@@ -1574,7 +1573,7 @@
         printlnProgress();
         maximumDuration = askInteger(
             INFO_REPLICATION_PURGE_HISTORICAL_MAXIMUM_DURATION_PROMPT.get(),
-            argParser.getDefaultMaximumDuration(), LOG);
+            argParser.getDefaultMaximumDuration(), logger);
       }
       uData.setMaximumDuration(maximumDuration);
     }
@@ -1626,7 +1625,7 @@
     cfg.updateTaskInformation(ctx, exceptions, taskEntries);
     for (OpenDsException ode : exceptions)
     {
-      LOG.log(Level.WARNING, "Error retrieving task entries: "+ode, ode);
+      logger.warn(LocalizableMessage.raw("Error retrieving task entries: "+ode, ode));
     }
     return taskEntries;
   }
@@ -1722,7 +1721,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -1730,7 +1729,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -1761,7 +1760,7 @@
         {
           if (!askConfirmation(
               INFO_REPLICATION_SERVER_CONFIGURED_WARNING_PROMPT.
-              get(ConnectionUtils.getHostPort(ctx1), repPort1), false, LOG))
+              get(ConnectionUtils.getHostPort(ctx1), repPort1), false, logger))
           {
             cancelled = true;
           }
@@ -1786,7 +1785,7 @@
           {
             configureReplicationServer1 = askConfirmation(
                 INFO_REPLICATION_ENABLE_REPLICATION_SERVER1_PROMPT.get(),
-                true, LOG);
+                true, logger);
           }
           catch (CLIException ce)
           {
@@ -1810,7 +1809,7 @@
           {
             replicationPort1 = askPort(
                 INFO_REPLICATION_ENABLE_REPLICATIONPORT1_PROMPT.get(),
-                argParser.getDefaultReplicationPort1(), LOG);
+                argParser.getDefaultReplicationPort1(), logger);
             println();
           }
           if (!argParser.skipReplicationPortCheck() && Utils.isLocalHost(host1))
@@ -1844,7 +1843,7 @@
           {
             secureReplication1 =
               askConfirmation(INFO_REPLICATION_ENABLE_SECURE1_PROMPT.get(
-                String.valueOf(replicationPort1)), false, LOG);
+                String.valueOf(replicationPort1)), false, logger);
           }
           catch (CLIException ce)
           {
@@ -1864,7 +1863,7 @@
         {
           configureReplicationDomain1 = askConfirmation(
               INFO_REPLICATION_ENABLE_REPLICATION_DOMAIN1_PROMPT.get(),
-              true, LOG);
+              true, logger);
         }
         catch (CLIException ce)
         {
@@ -2001,7 +2000,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         if (!doNotDisplayFirstError)
         {
           println();
@@ -2018,7 +2017,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2054,7 +2053,7 @@
         {
           if (!askConfirmation(
               INFO_REPLICATION_SERVER_CONFIGURED_WARNING_PROMPT.
-              get(ConnectionUtils.getHostPort(ctx2), repPort2), false, LOG))
+              get(ConnectionUtils.getHostPort(ctx2), repPort2), false, logger))
           {
             cancelled = true;
           }
@@ -2079,7 +2078,7 @@
           {
             configureReplicationServer2 = askConfirmation(
                 INFO_REPLICATION_ENABLE_REPLICATION_SERVER2_PROMPT.get(),
-                true, LOG);
+                true, logger);
           }
           catch (CLIException ce)
           {
@@ -2102,7 +2101,7 @@
             {
               replicationPort2 = askPort(
                   INFO_REPLICATION_ENABLE_REPLICATIONPORT2_PROMPT.get(),
-                  argParser.getDefaultReplicationPort2(), LOG);
+                  argParser.getDefaultReplicationPort2(), logger);
               println();
             }
             if (!argParser.skipReplicationPortCheck() &&
@@ -2148,7 +2147,7 @@
             {
               secureReplication2 =
                 askConfirmation(INFO_REPLICATION_ENABLE_SECURE2_PROMPT.get(
-                    String.valueOf(replicationPort2)), false, LOG);
+                    String.valueOf(replicationPort2)), false, logger);
             }
             catch (CLIException ce)
             {
@@ -2169,7 +2168,7 @@
         {
           configureReplicationDomain2 = askConfirmation(
               INFO_REPLICATION_ENABLE_REPLICATION_DOMAIN2_PROMPT.get(),
-              true, LOG);
+              true, logger);
         }
         catch (CLIException ce)
         {
@@ -2214,7 +2213,7 @@
         println(INFO_REPLICATION_ENABLE_ADMINISTRATOR_MUST_BE_CREATED.get());
         promptedForAdmin = true;
         adminUid= askForAdministratorUID(
-            argParser.getDefaultAdministratorUID(), LOG);
+            argParser.getDefaultAdministratorUID(), logger);
         println();
       }
       uData.setAdminUid(adminUid);
@@ -2246,14 +2245,14 @@
         }
         while (adminPwd == null)
         {
-          adminPwd = askForAdministratorPwd(LOG);
+          adminPwd = askForAdministratorPwd(logger);
           println();
         }
         String adminPwdConfirm = null;
         while (adminPwdConfirm == null)
         {
           adminPwdConfirm =
-          readPassword(INFO_ADMINISTRATOR_PWD_CONFIRM_PROMPT.get(), LOG);
+          readPassword(INFO_ADMINISTRATOR_PWD_CONFIRM_PROMPT.get(), logger);
           println();
         }
         if (!adminPwd.equals(adminPwdConfirm))
@@ -2333,7 +2332,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2341,7 +2340,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2380,7 +2379,7 @@
       try
       {
         disableAll = askConfirmation(INFO_REPLICATION_PROMPT_DISABLE_ALL.get(),
-          disableAll, LOG);
+          disableAll, logger);
       }
       catch (CLIException ce)
       {
@@ -2400,7 +2399,7 @@
           disableReplicationServer = askConfirmation(
               INFO_REPLICATION_PROMPT_DISABLE_REPLICATION_SERVER.get(repPort),
               disableReplicationServer,
-              LOG);
+              logger);
         }
         catch (CLIException ce)
         {
@@ -2418,7 +2417,7 @@
             INFO_REPLICATION_PROMPT_NO_REPLICATION_SERVER_TO_DISABLE.get(
                 ConnectionUtils.getHostPort(ctx)),
                 false,
-                LOG);
+                logger);
       }
       catch (CLIException ce)
       {
@@ -2449,7 +2448,7 @@
         {
           uData.setDisableReplicationServer(askConfirmation(
          INFO_REPLICATION_DISABLE_ALL_SUFFIXES_DISABLE_REPLICATION_SERVER.get(
-             ConnectionUtils.getHostPort(ctx), repPort), true, LOG));
+             ConnectionUtils.getHostPort(ctx), repPort), true, logger));
         }
         catch (CLIException ce)
         {
@@ -2481,7 +2480,7 @@
         try
         {
           cancelled = !askConfirmation(INFO_REPLICATION_CONFIRM_DISABLE_ADS.get(
-              ADSContext.getAdministrationSuffixDN()), true, LOG);
+              ADSContext.getAdministrationSuffixDN()), true, logger);
         }
         catch (CLIException ce)
         {
@@ -2496,7 +2495,7 @@
         try
         {
           cancelled = !askConfirmation(
-              INFO_REPLICATION_CONFIRM_DISABLE_SCHEMA.get(), true, LOG);
+              INFO_REPLICATION_CONFIRM_DISABLE_SCHEMA.get(), true, logger);
         }
         catch (CLIException ce)
         {
@@ -2515,7 +2514,7 @@
           {
             cancelled = !askConfirmation(
               INFO_REPLICATION_CONFIRM_DISABLE_GENERIC.get(), true,
-              LOG);
+              logger);
           }
         }
         catch (CLIException ce)
@@ -2577,7 +2576,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2585,7 +2584,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2629,7 +2628,7 @@
           cancelled = !askConfirmation(
               INFO_REPLICATION_CONFIRM_INITIALIZE_ALL_ADS.get(
                   ADSContext.getAdministrationSuffixDN(), hostPortSource), true,
-                  LOG);
+                  logger);
         }
         catch (CLIException ce)
         {
@@ -2645,7 +2644,7 @@
         {
           cancelled = !askConfirmation(
               INFO_REPLICATION_CONFIRM_INITIALIZE_ALL_GENERIC.get(
-                  hostPortSource), true, LOG);
+                  hostPortSource), true, logger);
         }
         catch (CLIException ce)
         {
@@ -2703,7 +2702,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2711,7 +2710,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2782,7 +2781,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2790,7 +2789,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2864,7 +2863,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2872,7 +2871,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -2971,7 +2970,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -2979,7 +2978,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -3054,7 +3053,7 @@
       }
       catch (ClientException ce)
       {
-        LOG.log(Level.WARNING, "Client exception "+ce);
+        logger.warn(LocalizableMessage.raw("Client exception "+ce));
         println();
         println(ce.getMessageObject());
         println();
@@ -3062,7 +3061,7 @@
       }
       catch (ArgumentException ae)
       {
-        LOG.log(Level.WARNING, "Argument exception "+ae);
+        logger.warn(LocalizableMessage.raw("Argument exception "+ae));
         println();
         println(ae.getMessageObject());
         println();
@@ -3107,7 +3106,7 @@
           cancelled = !askConfirmation(
               INFO_REPLICATION_CONFIRM_INITIALIZE_ADS.get(
                   ADSContext.getAdministrationSuffixDN(), hostPortDestination,
-                  hostPortSource), true, LOG);
+                  hostPortSource), true, logger);
         }
         catch (CLIException ce)
         {
@@ -3123,7 +3122,7 @@
         {
           cancelled = !askConfirmation(
               INFO_REPLICATION_CONFIRM_INITIALIZE_GENERIC.get(
-                  hostPortDestination, hostPortSource), true, LOG);
+                  hostPortDestination, hostPortSource), true, logger);
         }
         catch (CLIException ce)
         {
@@ -3509,8 +3508,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
-          "Unexpected error retrieving the replication port: "+t, t);
+      logger.warn(LocalizableMessage.raw(
+          "Unexpected error retrieving the replication port: "+t, t));
     }
     return replicationPort;
   }
@@ -3627,9 +3626,9 @@
                       errorDisplayed = true;
                     }
                     adminUid = askForAdministratorUID(
-                        argParser.getDefaultAdministratorUID(), LOG);
+                        argParser.getDefaultAdministratorUID(), logger);
                     println();
-                    adminPwd = askForAdministratorPwd(LOG);
+                    adminPwd = askForAdministratorPwd(logger);
                     println();
                   }
                   close(ctx[0]);
@@ -3653,7 +3652,7 @@
                     println(
                         ERR_ERROR_CONNECTING_TO_SERVER_PROMPT_AGAIN.get(
                           getServerRepresentation(host, port), t.getMessage()));
-                    LOG.log(Level.WARNING, "Complete error stack:", t);
+                    logger.warn(LocalizableMessage.raw("Complete error stack:", t));
                     println();
                   }
                 }
@@ -3684,7 +3683,7 @@
               {
                 reloadTopology = true;
                 cancelled = !ci.promptForCertificateConfirmation(e.getCause(),
-                    e.getTrustManager(), e.getLdapUrl(), true, LOG);
+                    e.getTrustManager(), e.getLdapUrl(), true, logger);
               }
               else
               {
@@ -3713,7 +3712,7 @@
               cancelled = !askConfirmation(
               ERR_REPLICATION_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.
                   get(Utils.getMessageFromCollection(exceptionMsgs,
-                      Constants.LINE_SEPARATOR).toString()), true, LOG);
+                      Constants.LINE_SEPARATOR).toString()), true, logger);
             }
             catch (CLIException ce)
             {
@@ -3726,14 +3725,14 @@
     }
     catch (ADSContextException ace)
     {
-      LOG.log(Level.SEVERE, "Complete error stack:", ace);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ace));
       throw new ReplicationCliException(
           ERR_REPLICATION_READING_ADS.get(ace.getMessage()),
           ERROR_READING_ADS, ace);
     }
     catch (TopologyCacheException tce)
     {
-      LOG.log(Level.SEVERE, "Complete error stack:", tce);
+      logger.error(LocalizableMessage.raw("Complete error stack:", tce));
       throw new ReplicationCliException(
           ERR_REPLICATION_READING_ADS.get(tce.getMessage()),
           ERROR_READING_TOPOLOGY_CACHE, tce);
@@ -3762,8 +3761,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
-          "Unexpected error retrieving the ADS data: "+t, t);
+      logger.warn(LocalizableMessage.raw(
+          "Unexpected error retrieving the ADS data: "+t, t));
     }
     return isAdminDefined;
   }
@@ -3804,8 +3803,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
-          "Unexpected error retrieving the ADS data: "+t, t);
+      logger.warn(LocalizableMessage.raw(
+          "Unexpected error retrieving the ADS data: "+t, t));
     }
     return isAdminDefined;
   }
@@ -3897,8 +3896,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
-          "Unexpected error retrieving the server configuration: "+t, t);
+      logger.warn(LocalizableMessage.raw(
+          "Unexpected error retrieving the server configuration: "+t, t));
     }
     return suffixes;
   }
@@ -3974,8 +3973,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING,
-          "Unexpected error retrieving the server configuration: "+t, t);
+      logger.warn(LocalizableMessage.raw(
+          "Unexpected error retrieving the server configuration: "+t, t));
     }
     return suffixes;
   }
@@ -4018,7 +4017,7 @@
       String hostPort = getServerRepresentation(host1, port1);
       errorMessages.add(getMessageForException(ne, hostPort));
 
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
     try
     {
@@ -4031,7 +4030,7 @@
       String hostPort = getServerRepresentation(host2, port2);
       errorMessages.add(getMessageForException(ne, hostPort));
 
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
 
     if (errorMessages.size() > 0)
@@ -4134,8 +4133,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
 
@@ -4169,7 +4168,7 @@
           returnValue = rce.getErrorCode();
           println();
           println(getCriticalExceptionMessage(rce));
-          LOG.log(Level.SEVERE, "Complete error stack:", rce);
+          logger.error(LocalizableMessage.raw("Complete error stack:", rce));
         }
       }
       else
@@ -4241,7 +4240,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
 
     if (ctx != null)
@@ -4286,8 +4285,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
 
@@ -4313,7 +4312,7 @@
           returnValue = rce.getErrorCode();
           println();
           println(getCriticalExceptionMessage(rce));
-          LOG.log(Level.SEVERE, "Complete error stack:", rce);
+          logger.error(LocalizableMessage.raw("Complete error stack:", rce));
         }
       }
       else
@@ -4356,7 +4355,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
 
     if (ctx != null)
@@ -4371,7 +4370,7 @@
         returnValue = rce.getErrorCode();
         println();
         println(getCriticalExceptionMessage(rce));
-        LOG.log(Level.SEVERE, "Complete error stack:", rce);
+        logger.error(LocalizableMessage.raw("Complete error stack:", rce));
       }
     }
     else
@@ -4430,8 +4429,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
 
@@ -4453,7 +4452,7 @@
             println();
             println(getCriticalExceptionMessage(rce));
             returnValue = rce.getErrorCode();
-            LOG.log(Level.SEVERE, "Complete error stack:", rce);
+            logger.error(LocalizableMessage.raw("Complete error stack:", rce));
           }
         }
       }
@@ -4494,7 +4493,7 @@
       final String hostPort = getServerRepresentation(host, port);
       println();
       println(Utils.getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
     return context;
   }
@@ -4526,7 +4525,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
     if (ctx != null)
     {
@@ -4546,8 +4545,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
         for (String baseDN : baseDNs)
@@ -4568,7 +4567,7 @@
             println();
             println(getCriticalExceptionMessage(rce));
             returnValue = rce.getErrorCode();
-            LOG.log(Level.SEVERE, "Complete error stack:", rce);
+            logger.error(LocalizableMessage.raw("Complete error stack:", rce));
           }
         }
       }
@@ -4613,7 +4612,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
     if (ctx != null)
     {
@@ -4633,8 +4632,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
         returnValue = SUCCESSFUL;
@@ -4655,7 +4654,7 @@
             println();
             println(getCriticalExceptionMessage(rce));
             returnValue = rce.getErrorCode();
-            LOG.log(Level.SEVERE, "Complete error stack:", rce);
+            logger.error(LocalizableMessage.raw("Complete error stack:", rce));
           }
         }
         printlnProgress();
@@ -4702,7 +4701,7 @@
         getServerRepresentation(uData.getHostName(), uData.getPort());
       println();
       println(getMessageForException(ne, hostPort));
-      LOG.log(Level.SEVERE, "Complete error stack:", ne);
+      logger.error(LocalizableMessage.raw("Complete error stack:", ne));
     }
     if (ctx != null)
     {
@@ -4722,8 +4721,8 @@
           }
           catch (Throwable t)
           {
-            LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-                t);
+            logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+                t));
           }
         }
         returnValue = SUCCESSFUL;
@@ -4744,7 +4743,7 @@
             println();
             println(getCriticalExceptionMessage(rce));
             returnValue = rce.getErrorCode();
-            LOG.log(Level.SEVERE, "Complete error stack:", rce);
+            logger.error(LocalizableMessage.raw("Complete error stack:", rce));
           }
         }
         printlnProgress();
@@ -4949,7 +4948,7 @@
                 try
                 {
                   if (askConfirmation(
-                    INFO_REPLICATION_ENABLE_SUFFIX_PROMPT.get(dn), true, LOG))
+                    INFO_REPLICATION_ENABLE_SUFFIX_PROMPT.get(dn), true, logger))
                   {
                     suffixes.add(dn);
                   }
@@ -5134,7 +5133,7 @@
                 {
                   if (askConfirmation(
                       INFO_REPLICATION_DISABLE_SUFFIX_PROMPT.get(dn), true,
-                      LOG))
+                      logger))
                   {
                     suffixes.add(dn);
                   }
@@ -5342,19 +5341,19 @@
                   {
                     addSuffix = askConfirmation(
                     INFO_REPLICATION_PRE_EXTERNAL_INITIALIZATION_SUFFIX_PROMPT.
-                        get(dn), true, LOG);
+                        get(dn), true, logger);
                   }
                   else if (argParser.isPostExternalInitializationSubcommand())
                   {
                     addSuffix = askConfirmation(
                     INFO_REPLICATION_POST_EXTERNAL_INITIALIZATION_SUFFIX_PROMPT.
-                        get(dn), true, LOG);
+                        get(dn), true, logger);
                   }
                   else
                   {
                     addSuffix = askConfirmation(
                         INFO_REPLICATION_INITIALIZE_ALL_SUFFIX_PROMPT.get(dn),
-                        true, LOG);
+                        true, logger);
                   }
                 }
                 catch (CLIException ce)
@@ -5471,7 +5470,7 @@
                 {
                   if (askConfirmation(
                       INFO_REPLICATION_INITIALIZE_SUFFIX_PROMPT.get(dn), true,
-                      LOG))
+                      logger))
                   {
                     suffixes.add(dn);
                   }
@@ -5881,7 +5880,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error seeding truststores: "+t, t);
+        logger.error(LocalizableMessage.raw("Error seeding truststores: "+t, t));
         String arg = (t instanceof OpenDsException) ?
             ((OpenDsException)t).getMessageObject().toString() : t.toString();
         throw new ReplicationCliException(
@@ -6063,9 +6062,9 @@
         if (uData.getReplicationPort1() !=
           server1.getReplicationServerPort())
         {
-          LOG.log(Level.WARNING, "Ignoring provided replication port for "+
+          logger.warn(LocalizableMessage.raw("Ignoring provided replication port for "+
               "first server (already configured with port "+
-              server1.getReplicationServerPort()+")");
+              server1.getReplicationServerPort()+")"));
           println(WARN_FIRST_REPLICATION_SERVER_ALREADY_CONFIGURED.get(
               server1.getReplicationServerPort(), uData.getReplicationPort1()));
         }
@@ -6107,9 +6106,9 @@
         if (uData.getReplicationPort2() !=
           server2.getReplicationServerPort())
         {
-          LOG.log(Level.WARNING, "Ignoring provided replication port for "+
+          logger.warn(LocalizableMessage.raw("Ignoring provided replication port for "+
               "second server (already configured with port "+
-              server2.getReplicationServerPort()+")");
+              server2.getReplicationServerPort()+")"));
           println(WARN_SECOND_REPLICATION_SERVER_ALREADY_CONFIGURED.get(
               server2.getReplicationServerPort(), uData.getReplicationPort2()));
         }
@@ -6424,7 +6423,7 @@
             {
               if (!askConfirmation(
                   INFO_DISABLE_REPLICATION_ONE_POINT_OF_FAILURE_PROMPT.get(arg),
-                      false, LOG))
+                      false, logger))
               {
                 throw new ReplicationCliException(
                     ERR_REPLICATION_USER_CANCELLED.get(),
@@ -6511,7 +6510,7 @@
             {
               if (!askConfirmation(
                   INFO_DISABLE_REPLICATION_DISABLE_IN_REMOTE_PROMPT.get(arg),
-                      false, LOG))
+                      false, logger))
               {
                 throw new ReplicationCliException(
                     ERR_REPLICATION_USER_CANCELLED.get(),
@@ -6578,8 +6577,8 @@
       }
       catch (ADSContextException adce)
       {
-        LOG.log(Level.SEVERE, "Error unregistering server: "+
-            server.getAdsProperties(), adce);
+        logger.error(LocalizableMessage.raw("Error unregistering server: "+
+            server.getAdsProperties(), adce));
         if (adce.getError() != ADSContextException.ErrorType.NOT_YET_REGISTERED)
         {
           throw new ReplicationCliException(
@@ -6743,8 +6742,8 @@
       }
       catch (ADSContextException adce)
       {
-        LOG.log(Level.SEVERE, "Error removing contents of cn=admin data: "+
-            adce, adce);
+        logger.error(LocalizableMessage.raw("Error removing contents of cn=admin data: "+
+            adce, adce));
         throw new ReplicationCliException(
             ERR_REPLICATION_UPDATING_ADS.get(adce.getMessageObject()),
             ERROR_UPDATING_ADS, adce);
@@ -6774,8 +6773,8 @@
       catch (ADSContextException adce)
       {
         // This is not critical, do not send an error
-        LOG.log(Level.WARNING, "Error unregistering server: "+
-            server.getAdsProperties(), adce);
+        logger.warn(LocalizableMessage.raw("Error unregistering server: "+
+            server.getAdsProperties(), adce));
       }
     }
   }
@@ -6824,8 +6823,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error printing equivalente command-line: "+t,
-            t);
+        logger.error(LocalizableMessage.raw("Error printing equivalente command-line: "+t,
+            t));
       }
     }
     if (!argParser.isInteractive())
@@ -7567,8 +7566,8 @@
     }
     catch (ManagedObjectNotFoundException monfe)
     {
-      LOG.log(Level.INFO, "Synchronization server does not exist in "+
-          ConnectionUtils.getHostPort(ctx));
+      logger.debug(LocalizableMessage.raw("Synchronization server does not exist in "+
+          ConnectionUtils.getHostPort(ctx)));
     }
     if (sync == null)
     {
@@ -7847,8 +7846,8 @@
       Set<String> alreadyConfiguredReplicationServers)
   throws ReplicationCliException
   {
-    LOG.log(Level.INFO, "Configuring base DN '"+baseDN+
-        "' the replication servers are "+repServers);
+    logger.debug(LocalizableMessage.raw("Configuring base DN '"+baseDN+
+        "' the replication servers are "+repServers));
     Set<ServerDescriptor> serversToConfigureDomain =
       new HashSet<ServerDescriptor>();
     Set<ServerDescriptor> replicationServersToConfigure =
@@ -7895,7 +7894,7 @@
 
     for (ServerDescriptor s : allServers)
     {
-      LOG.log(Level.INFO,"Configuring server "+server.getHostPort(true));
+      logger.debug(LocalizableMessage.raw("Configuring server "+server.getHostPort(true)));
       InitialLdapContext ctx = null;
       try
       {
@@ -8015,7 +8014,7 @@
       }
       catch (PeerNotFoundException pnfe)
       {
-        LOG.log(Level.INFO, "Peer could not be found");
+        logger.debug(LocalizableMessage.raw("Peer could not be found"));
         if (nTries == 1)
         {
           throw new ReplicationCliException(
@@ -8075,7 +8074,7 @@
       }
       catch (PeerNotFoundException pnfe)
       {
-        LOG.log(Level.INFO, "Peer could not be found");
+        logger.debug(LocalizableMessage.raw("Peer could not be found"));
         if (nTries == 1)
         {
           throw new ReplicationCliException(
@@ -8171,7 +8170,7 @@
       {
         DirContext dirCtx = ctx.createSubcontext(dn, attrs);
         taskCreated = true;
-        LOG.log(Level.INFO, "created task entry: "+attrs);
+        logger.debug(LocalizableMessage.raw("created task entry: "+attrs));
         dirCtx.close();
       }
       catch (NameAlreadyBoundException x)
@@ -8179,7 +8178,7 @@
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ne));
         LocalizableMessage msg = isPre ?
         ERR_LAUNCHING_PRE_EXTERNAL_INITIALIZATION.get():
           ERR_LAUNCHING_POST_EXTERNAL_INITIALIZATION.get();
@@ -8232,7 +8231,7 @@
         {
           if (!logMsg.equals(lastLogMsg))
           {
-            LOG.log(Level.INFO, logMsg);
+            logger.debug(LocalizableMessage.raw(logMsg));
             lastLogMsg = logMsg;
           }
         }
@@ -8263,13 +8262,13 @@
 
           if (helper.isCompletedWithErrors(state))
           {
-            LOG.log(Level.WARNING, "Completed with error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Completed with error: "+errorMsg));
             println(errorMsg);
           }
           else if (!helper.isSuccessful(state) ||
               helper.isStoppedByError(state))
           {
-            LOG.log(Level.WARNING, "Error: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Error: "+errorMsg));
             ReplicationCliReturnCode code = isPre?
                 ERROR_LAUNCHING_PRE_EXTERNAL_INITIALIZATION:
                   ERROR_LAUNCHING_POST_EXTERNAL_INITIALIZATION;
@@ -8331,16 +8330,16 @@
       {
         DirContext dirCtx = ctx.createSubcontext(dn, attrs);
         taskCreated = true;
-        LOG.log(Level.INFO, "created task entry: "+attrs);
+        logger.debug(LocalizableMessage.raw("created task entry: "+attrs));
         dirCtx.close();
       }
       catch (NameAlreadyBoundException x)
       {
-        LOG.log(Level.WARNING, "A task with dn: "+dn+" already existed.");
+        logger.warn(LocalizableMessage.raw("A task with dn: "+dn+" already existed."));
       }
       catch (NamingException ne)
       {
-        LOG.log(Level.SEVERE, "Error creating task "+attrs, ne);
+        logger.error(LocalizableMessage.raw("Error creating task "+attrs, ne));
         throw new ApplicationException(
             ReturnCode.APPLICATION_ERROR,
                 getThrowableMsg(INFO_ERROR_LAUNCHING_INITIALIZATION.get(
@@ -8461,7 +8460,7 @@
           if (((currentTime - minRefreshPeriod) > lastTimeMsgLogged))
           {
             lastTimeMsgLogged = currentTime;
-            LOG.log(Level.INFO, "Progress msg: "+msg);
+            logger.debug(LocalizableMessage.raw("Progress msg: "+msg));
           }
           if (displayProgress)
           {
@@ -8481,7 +8480,7 @@
         {
           if (!logMsg.equals(lastLogMsg))
           {
-            LOG.log(Level.INFO, logMsg);
+            logger.debug(LocalizableMessage.raw(logMsg));
             lastLogMsg = logMsg;
           }
         }
@@ -8492,7 +8491,7 @@
         {
           isOver = true;
           LocalizableMessage errorMsg;
-          LOG.log(Level.INFO, "Last task entry: "+sr);
+          logger.debug(LocalizableMessage.raw("Last task entry: "+sr));
           if (displayProgress && (msg != null) && !msg.equals(lastDisplayedMsg))
           {
             printProgress(msg);
@@ -8512,7 +8511,7 @@
 
           if (helper.isCompletedWithErrors(state))
           {
-            LOG.log(Level.WARNING, "Processed errorMsg: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Processed errorMsg: "+errorMsg));
             if (displayProgress)
             {
               println(errorMsg);
@@ -8521,21 +8520,21 @@
           else if (!helper.isSuccessful(state) ||
               helper.isStoppedByError(state))
           {
-            LOG.log(Level.WARNING, "Processed errorMsg: "+errorMsg);
+            logger.warn(LocalizableMessage.raw("Processed errorMsg: "+errorMsg));
             ApplicationException ae = new ApplicationException(
                 ReturnCode.APPLICATION_ERROR, errorMsg,
                 null);
             if ((lastLogMsg == null) ||
                 helper.isPeersNotFoundError(lastLogMsg))
             {
-              LOG.log(Level.WARNING, "Throwing peer not found error.  "+
-                  "Last Log Msg: "+lastLogMsg);
+              logger.warn(LocalizableMessage.raw("Throwing peer not found error.  "+
+                  "Last Log Msg: "+lastLogMsg));
               // Assume that this is a peer not found error.
               throw new PeerNotFoundException(errorMsg);
             }
             else
             {
-              LOG.log(Level.SEVERE, "Throwing ApplicationException.");
+              logger.error(LocalizableMessage.raw("Throwing ApplicationException."));
               throw ae;
             }
           }
@@ -8546,15 +8545,15 @@
               printProgress(INFO_SUFFIX_INITIALIZED_SUCCESSFULLY.get());
               printlnProgress();
             }
-            LOG.log(Level.INFO, "Processed msg: "+errorMsg);
-            LOG.log(Level.INFO, "Initialization completed successfully.");
+            logger.debug(LocalizableMessage.raw("Processed msg: "+errorMsg));
+            logger.debug(LocalizableMessage.raw("Initialization completed successfully."));
           }
         }
       }
       catch (NameNotFoundException x)
       {
         isOver = true;
-        LOG.log(Level.INFO, "Initialization entry not found.");
+        logger.debug(LocalizableMessage.raw("Initialization entry not found."));
         if (displayProgress)
         {
           printProgress(INFO_SUFFIX_INITIALIZED_SUCCESSFULLY.get());
@@ -8619,8 +8618,8 @@
       catch (ManagedObjectNotFoundException monfe)
       {
         // It does not exist.
-        LOG.log(Level.INFO, "No synchronization found on "+ hostPort +".",
-            monfe);
+        logger.debug(LocalizableMessage.raw("No synchronization found on "+ hostPort +".",
+            monfe));
       }
       if (sync != null)
       {
@@ -8654,8 +8653,8 @@
                   }
                   if (replServer != null)
                   {
-                    LOG.log(Level.INFO, "Updating references in domain " +
-                        domain.getBaseDN()+" on " + hostPort + ".");
+                    logger.debug(LocalizableMessage.raw("Updating references in domain " +
+                        domain.getBaseDN()+" on " + hostPort + "."));
                     replServers.remove(replServer);
                     if (replServers.size() > 0)
                     {
@@ -8762,8 +8761,8 @@
       catch (ManagedObjectNotFoundException monfe)
       {
         // It does not exist.
-        LOG.log(Level.INFO, "No synchronization found on "+ hostPort +".",
-            monfe);
+        logger.debug(LocalizableMessage.raw("No synchronization found on "+ hostPort +".",
+            monfe));
       }
       if (sync != null)
       {
@@ -8826,8 +8825,8 @@
       catch (ManagedObjectNotFoundException monfe)
       {
         // It does not exist.
-        LOG.log(Level.INFO, "No synchronization found on "+ hostPort +".",
-            monfe);
+        logger.debug(LocalizableMessage.raw("No synchronization found on "+ hostPort +".",
+            monfe));
       }
       if (replicationServer != null)
       {
@@ -9067,8 +9066,8 @@
       if (ade.getError() ==
         ADSContextException.ErrorType.ALREADY_REGISTERED)
       {
-        LOG.log(Level.WARNING, "The server was already registered: "+
-            serverProperties);
+        logger.warn(LocalizableMessage.raw("The server was already registered: "+
+            serverProperties));
         adsContext.unregisterServer(serverProperties);
         adsContext.registerServer(serverProperties);
       }
@@ -9160,7 +9159,7 @@
     }
     catch (ArgumentException ae)
     {
-      LOG.log(Level.WARNING, "Error initializing trust store: "+ae, ae);
+      logger.warn(LocalizableMessage.raw("Error initializing trust store: "+ae, ae));
     }
     forceNonInteractive = false;
   }
@@ -9346,7 +9345,7 @@
     catch (CLIException ce)
     {
       returnValue = SubcommandChoice.CANCEL;
-      LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
     }
     return returnValue;
   }
@@ -10328,8 +10327,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Error loading topology cache in "+
-            ConnectionUtils.getLdapUrl(ctx1)+": "+t, t);
+        logger.warn(LocalizableMessage.raw("Error loading topology cache in "+
+            ConnectionUtils.getLdapUrl(ctx1)+": "+t, t));
       }
     }
 
@@ -10350,8 +10349,8 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.WARNING, "Error loading topology cache in "+
-            ConnectionUtils.getLdapUrl(ctx2)+": "+t, t);
+        logger.warn(LocalizableMessage.raw("Error loading topology cache in "+
+            ConnectionUtils.getLdapUrl(ctx2)+": "+t, t));
       }
     }
 
@@ -10475,8 +10474,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error loading topology cache from "+
-          ConnectionUtils.getHostPort(adsCtx1.getDirContext())+": "+t, t);
+      logger.warn(LocalizableMessage.raw("Error loading topology cache from "+
+          ConnectionUtils.getHostPort(adsCtx1.getDirContext())+": "+t, t));
     }
 
     try
@@ -10496,8 +10495,8 @@
     }
     catch (Throwable t)
     {
-      LOG.log(Level.WARNING, "Error loading topology cache from "+
-          ConnectionUtils.getHostPort(adsCtx2.getDirContext())+": "+t, t);
+      logger.warn(LocalizableMessage.raw("Error loading topology cache from "+
+          ConnectionUtils.getHostPort(adsCtx2.getDirContext())+": "+t, t));
     }
 
     int repPort1 = getReplicationPort(adsCtx1.getDirContext());
@@ -10587,8 +10586,8 @@
       }
       catch (TopologyCacheException te)
       {
-        LOG.log(Level.SEVERE, "Error reading topology cache of "+
-            ConnectionUtils.getHostPort(adsCtx1.getDirContext())+ " "+te, te);
+        logger.error(LocalizableMessage.raw("Error reading topology cache of "+
+            ConnectionUtils.getHostPort(adsCtx1.getDirContext())+ " "+te, te));
         throw new ReplicationCliException(
             ERR_REPLICATION_READING_ADS.get(te.getMessageObject()),
             ERROR_UPDATING_ADS, te);
@@ -10603,8 +10602,8 @@
       }
       catch (TopologyCacheException te)
       {
-        LOG.log(Level.SEVERE, "Error reading topology cache of "+
-            ConnectionUtils.getHostPort(adsCtx2.getDirContext())+ " "+te, te);
+        logger.error(LocalizableMessage.raw("Error reading topology cache of "+
+            ConnectionUtils.getHostPort(adsCtx2.getDirContext())+ " "+te, te));
         throw new ReplicationCliException(
             ERR_REPLICATION_READING_ADS.get(te.getMessageObject()),
             ERROR_UPDATING_ADS, te);
@@ -10652,7 +10651,7 @@
             ConnectionUtils.getHostPort(ctxDestination));
         try
         {
-          if (!askConfirmation(msg, true, LOG))
+          if (!askConfirmation(msg, true, logger))
           {
             throw new ReplicationCliException(
                 ERR_REPLICATION_USER_CANCELLED.get(),
@@ -10824,11 +10823,11 @@
       }
       catch (ADSContextException adce)
       {
-        LOG.log(Level.SEVERE, "Error merging registry of "+
+        logger.error(LocalizableMessage.raw("Error merging registry of "+
             ConnectionUtils.getHostPort(adsCtxSource.getDirContext())+
             " with registry of "+
             ConnectionUtils.getHostPort(adsCtxDestination.getDirContext())+" "+
-            adce, adce);
+            adce, adce));
         if (adce.getError() == ADSContextException.ErrorType.ERROR_MERGING)
         {
           throw new ReplicationCliException(adce.getMessageObject(),
@@ -10848,9 +10847,9 @@
         {
           if (server.isReplicationServer())
           {
-            LOG.log(Level.INFO, "Seeding to replication server on "+
+            logger.debug(LocalizableMessage.raw("Seeding to replication server on "+
                 server.getHostPort(true)+" with certificates of "+
-                ConnectionUtils.getHostPort(adsCtxSource.getDirContext()));
+                ConnectionUtils.getHostPort(adsCtxSource.getDirContext())));
             InitialLdapContext ctx = null;
             try
             {
@@ -10867,7 +10866,7 @@
       }
       catch (Throwable t)
       {
-        LOG.log(Level.SEVERE, "Error seeding truststore: "+t, t);
+        logger.error(LocalizableMessage.raw("Error seeding truststore: "+t, t));
         String arg = (t instanceof OpenDsException) ?
             ((OpenDsException)t).getMessageObject().toString() : t.toString();
             throw new ReplicationCliException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java b/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
index 4d2e2d4..97adfcf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
@@ -41,8 +41,9 @@
 import java.util.Iterator;
 import java.util.Set;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
@@ -59,7 +60,6 @@
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.util.ControlPanelLog;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.server.admin.AdministrationConnector;
 import org.opends.server.admin.client.ManagementContext;
@@ -162,7 +162,7 @@
   /**
    * The Logger.
    */
-  static private final Logger LOG = Logger.getLogger(StatusCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The argument parser. */
   private StatusCliArgumentParser argParser;
@@ -336,7 +336,7 @@
             URI uri = new URI(ldapUrl);
             port = uri.getPort();
           } catch (Throwable t) {
-            LOG.log(Level.SEVERE, "Error parsing url: " + ldapUrl);
+            logger.error(LocalizableMessage.raw("Error parsing url: " + ldapUrl));
           }
           secureArgsList.hostNameArg.setPresent(true);
           secureArgsList.portArg.setPresent(true);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/FileManager.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/FileManager.java
index 60e7c62..ef1a702 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/FileManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/FileManager.java
@@ -41,8 +41,8 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 
 
 
@@ -83,8 +83,7 @@
   /**
    * Upgrade's Log.
    */
-  static private final Logger LOG = Logger
-      .getLogger(UpgradeCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -187,8 +186,8 @@
     }
     else
     {
-      LOG.log(Level.INFO, new StringBuilder("File '").append(file.toString())
-          .append("' does not exist").toString());
+      logger.debug(LocalizableMessage.raw(new StringBuilder("File '").append(file.toString())
+          .append("' does not exist").toString()));
     }
   }
 
@@ -373,7 +372,7 @@
           {
             final LocalizableMessage message = LocalizableMessage.raw("Copying file '%s' to '%s'",
                 objectFile.getAbsolutePath(), destination.getAbsolutePath());
-            LOG.log(Level.INFO, message.toString());
+            logger.debug(LocalizableMessage.raw(message.toString()));
             FileInputStream fis = null;
             FileOutputStream fos = null;
             try
@@ -417,7 +416,7 @@
           {
             final LocalizableMessage errMsg = INFO_ERROR_COPYING_FILE.get(
                 objectFile.getAbsolutePath(), destination.getAbsolutePath());
-            LOG.log(Level.SEVERE, errMsg.toString());
+            logger.error(LocalizableMessage.raw(errMsg.toString()));
             throw new IOException(errMsg.toString());
           }
         }
@@ -427,7 +426,7 @@
               "Ignoring file '%s' since '%s' already exists",
               objectFile.getAbsolutePath(), destination.getAbsolutePath());
 
-          LOG.log(Level.INFO, message.toString());
+          logger.debug(LocalizableMessage.raw(message.toString()));
         }
       }
     }
@@ -547,8 +546,8 @@
       File file = getObjectFile();
       boolean isFile = file.isFile();
 
-      LOG.log(Level.INFO, "deleting " + (isFile ? " file " : " directory ")
-          + file.getAbsolutePath());
+      logger.debug(LocalizableMessage.raw("deleting " + (isFile ? " file " : " directory ")
+          + file.getAbsolutePath()));
 
       boolean delete = false;
       /*
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/Upgrade.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/Upgrade.java
index c196a74..340717c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/Upgrade.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/Upgrade.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2013-2014 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 
 package org.opends.server.tools.upgrade;
@@ -39,12 +39,12 @@
 import java.util.List;
 import java.util.NavigableMap;
 import java.util.TreeMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.security.auth.callback.ConfirmationCallback;
 
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.tools.ClientException;
 import org.opends.server.util.BuildVersion;
@@ -59,8 +59,7 @@
   /**
    * Upgrade's logger.
    */
-  private final static Logger LOG = Logger
-      .getLogger(UpgradeCli.class.getName());
+  private final static LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Upgrade supports version from 2.4.5.
@@ -473,7 +472,7 @@
       context.notify(INFO_UPGRADE_GENERAL_SEE_FOR_DETAILS.get(UpgradeUtils
           .getInstallationPath()
           + File.separator + UpgradeLog.UPGRADELOGNAME), NOTICE_CALLBACK);
-      LOG.log(Level.CONFIG, INFO_UPGRADE_PROCESS_END.get().toString());
+      logger.info(LocalizableMessage.raw(INFO_UPGRADE_PROCESS_END.get().toString()));
     }
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeCli.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeCli.java
index a0389de..3fc5a0b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeCli.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeCli.java
@@ -29,8 +29,6 @@
 
 import static org.opends.server.tools.ToolConstants.*;
 import static org.opends.server.util.StaticUtils.filterExitCode;
-import static java.util.logging.Level.INFO;
-import static java.util.logging.Level.SEVERE;
 import static org.opends.server.tools.upgrade.FormattedNotificationCallback.*;
 import static org.opends.server.tools.upgrade.Upgrade.EXIT_CODE_ERROR;
 import static org.opends.server.tools.upgrade.Upgrade.EXIT_CODE_SUCCESS;
@@ -40,8 +38,9 @@
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
@@ -49,7 +48,6 @@
 import javax.security.auth.callback.TextOutputCallback;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.tools.ClientException;
 import org.opends.server.util.ServerConstants;
@@ -70,8 +68,7 @@
   /**
    * Upgrade's logger.
    */
-  static private final Logger LOG = Logger
-      .getLogger(UpgradeCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The command-line argument parser.
   private final SubCommandArgumentParser parser;
@@ -404,28 +401,28 @@
         {
         case TITLE_CALLBACK:
           println(Style.TITLE, LocalizableMessage.raw(fnc.getMessage()), 0);
-          LOG.log(INFO, fnc.getMessage());
+          logger.debug(LocalizableMessage.raw(fnc.getMessage()));
           break;
         case SUBTITLE_CALLBACK:
           println(Style.SUBTITLE, LocalizableMessage.raw(fnc.getMessage()),
               4);
-          LOG.log(INFO, fnc.getMessage());
+          logger.debug(LocalizableMessage.raw(fnc.getMessage()));
           break;
         case NOTICE_CALLBACK:
           println(Style.NOTICE, LocalizableMessage.raw(fnc.getMessage()), 1);
-          LOG.log(INFO, fnc.getMessage());
+          logger.debug(LocalizableMessage.raw(fnc.getMessage()));
           break;
         case ERROR_CALLBACK:
           println(Style.ERROR, LocalizableMessage.raw(fnc.getMessage()), 1);
-          LOG.log(Level.SEVERE, fnc.getMessage());
+          logger.error(LocalizableMessage.raw(fnc.getMessage()));
           break;
         case WARNING:
           println(Style.WARNING, LocalizableMessage.raw(fnc.getMessage()), 2);
-          LOG.log(Level.WARNING, fnc.getMessage());
+          logger.warn(LocalizableMessage.raw(fnc.getMessage()));
           break;
         default:
-          LOG.log(SEVERE, "Unsupported message type: "
-            + fnc.getMessage());
+          logger.error(LocalizableMessage.raw("Unsupported message type: "
+            + fnc.getMessage()));
           throw new IOException("Unsupported message type: ");
         }
       }
@@ -434,11 +431,11 @@
         // Usual output text.
         final TextOutputCallback toc = (TextOutputCallback) c;
         if(toc.getMessageType() == TextOutputCallback.INFORMATION) {
-          LOG.log(INFO, toc.getMessage());
+          logger.debug(LocalizableMessage.raw(toc.getMessage()));
           printlnProgress(LocalizableMessage.raw(toc.getMessage()));
         } else {
-          LOG.log(SEVERE, "Unsupported message type: "
-            + toc.getMessage());
+          logger.error(LocalizableMessage.raw("Unsupported message type: "
+            + toc.getMessage()));
           throw new IOException("Unsupported message type: ");
         }
       }
@@ -485,7 +482,7 @@
         }
         prompt.append(")");
 
-        LOG.log(INFO, cc.getPrompt());
+        logger.debug(LocalizableMessage.raw(cc.getPrompt()));
 
         // Displays the output and
         // while it hasn't a valid response, question is repeated.
@@ -502,7 +499,7 @@
             }
             catch (CLIException e)
             {
-              LOG.log(SEVERE, e.getMessage());
+              logger.error(LocalizableMessage.raw(e.getMessage()));
               break;
             }
 
@@ -531,7 +528,7 @@
               cc.setSelectedIndex(ConfirmationCallback.CANCEL);
               break;
             }
-            LOG.log(INFO, value);
+            logger.debug(LocalizableMessage.raw(value));
           }
         }
         else // Non interactive mode :
@@ -548,12 +545,12 @@
           // Displays the prompt
           prompt.append(" ").append(getDefaultOption(cc.getSelectedIndex()));
           println(Style.SUBTITLE, LocalizableMessage.raw(prompt), 0);
-          LOG.log(INFO, getDefaultOption(cc.getSelectedIndex()));
+          logger.debug(LocalizableMessage.raw(getDefaultOption(cc.getSelectedIndex())));
         }
       }
       else
       {
-        LOG.log(SEVERE, "Unrecognized Callback");
+        logger.error(LocalizableMessage.raw("Unrecognized Callback"));
         throw new UnsupportedCallbackException(c, "Unrecognized Callback");
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeLog.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeLog.java
index 12cd2c8..a6e3945 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeLog.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeLog.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 
 package org.opends.server.tools.upgrade;
@@ -75,7 +75,7 @@
     }
     catch (IOException e)
     {
-      logger.log(Level.SEVERE, e.getMessage());
+      logger.severe(e.getMessage());
     }
     fileHandler.setFormatter(new Formatter()
     {
@@ -103,10 +103,10 @@
 
     logger.setUseParentHandlers(false);
     // Log Config info.
-    logger.log(Level.CONFIG, "**** Upgrade of OpenDJ started ****");
-    logger.log(Level.CONFIG, RuntimeMessages.NOTE_INSTALL_DIRECTORY.get(
+    logger.info("**** Upgrade of OpenDJ started ****");
+    logger.info(RuntimeMessages.NOTE_INSTALL_DIRECTORY.get(
         UpgradeUtils.getInstallationPath()).toString());
-    logger.log(Level.CONFIG, RuntimeMessages.NOTE_INSTANCE_DIRECTORY.get(
+    logger.info(RuntimeMessages.NOTE_INSTANCE_DIRECTORY.get(
         UpgradeUtils.getInstancePath()).toString());
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeTasks.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeTasks.java
index 96c2f84..4ffd213 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeTasks.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeTasks.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2013-2014 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 
 package org.opends.server.tools.upgrade;
@@ -40,14 +40,14 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.security.auth.callback.ConfirmationCallback;
 import javax.security.auth.callback.TextOutputCallback;
 
 import org.forgerock.opendj.ldap.Filter;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.tools.ClientException;
 import org.opends.server.tools.RebuildIndex;
 import org.opends.server.util.BuildVersion;
@@ -66,8 +66,7 @@
   /**
    * Logger for the upgrade.
    */
-  static private final Logger LOG = Logger
-      .getLogger(UpgradeCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The indexes list to rebuild are united here.
@@ -138,7 +137,7 @@
       public void perform(final UpgradeContext context) throws ClientException
       {
         final LocalizableMessage msg = INFO_UPGRADE_TASK_REPLACE_SCHEMA_FILE.get(fileName);
-        LOG.log(Level.INFO, msg.toString());
+        logger.debug(LocalizableMessage.raw(msg.toString()));
 
         final ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, msg, 0);
@@ -183,7 +182,7 @@
       public void perform(final UpgradeContext context) throws ClientException
       {
         final LocalizableMessage msg = INFO_UPGRADE_TASK_ADD_CONFIG_FILE.get(fileName);
-        LOG.log(Level.INFO, msg.toString());
+        logger.debug(msg);
 
         final ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, msg, 0);
@@ -279,7 +278,7 @@
       @Override
       public void perform(final UpgradeContext context) throws ClientException
       {
-        LOG.log(Level.INFO, summary.toString());
+        logger.debug(summary);
 
         final ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, summary, 20);
@@ -338,7 +337,7 @@
       @Override
       public void perform(final UpgradeContext context) throws ClientException
       {
-        LOG.log(Level.INFO, summary.toString());
+        logger.debug(summary);
 
         final ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, summary, 20);
@@ -450,7 +449,7 @@
               }
               catch (ClientException e)
               {
-                LOG.log(Level.SEVERE, e.getMessage());
+                logger.error(LocalizableMessage.raw(e.getMessage()));
                 isOk = false;
               }
             }
@@ -620,7 +619,7 @@
         // Startup message.
         ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, message, 25);
-        LOG.log(Level.INFO, message.toString());
+        logger.debug(message);
         context.notifyProgress(pnc);
 
         // Sets the arguments like the rebuild index command line.
@@ -646,8 +645,8 @@
           final String[] commandLineArgs =
               args.toArray(new String[args.size()]);
           // Displays info about command line args for log only.
-          LOG.log(Level.INFO, INFO_UPGRADE_REBUILD_INDEX_ARGUMENTS.get(
-              Arrays.toString(commandLineArgs)).toString());
+          logger.debug(INFO_UPGRADE_REBUILD_INDEX_ARGUMENTS.get(
+              Arrays.toString(commandLineArgs)));
 
           /*
            * The rebuild-index process just display a status ok / fails. The
@@ -660,8 +659,7 @@
 
           if (result == 0)
           {
-            LOG.log(Level.INFO, INFO_UPGRADE_REBUILD_INDEX_ENDS.get()
-                .toString());
+            logger.debug(INFO_UPGRADE_REBUILD_INDEX_ENDS.get());
             context.notifyProgress(pnc.setProgress(100));
           }
           else
@@ -674,9 +672,9 @@
         else
         {
           final LocalizableMessage msg = INFO_UPGRADE_REBUILD_INDEX_NO_BACKEND_FOUND.get();
-          LOG.log(Level.INFO, msg.toString());
-          LOG.log(Level.INFO, INFO_UPGRADE_REBUILD_INDEX_DECLINED.get(
-              Arrays.toString(indexesListToRebuild.toArray())).toString());
+          logger.debug(msg);
+          logger.debug(INFO_UPGRADE_REBUILD_INDEX_DECLINED.get(
+              Arrays.toString(indexesListToRebuild.toArray())));
           context.notifyProgress(pnc.setProgress(100));
         }
       }
@@ -700,7 +698,7 @@
       public void perform(final UpgradeContext context) throws ClientException
       {
         final LocalizableMessage msg = INFO_UPGRADE_TASK_REFRESH_UPGRADE_DIRECTORY.get();
-        LOG.log(Level.INFO, msg.toString());
+        logger.debug(msg);
 
         final ProgressNotificationCallback pnc =
             new ProgressNotificationCallback(0, msg, 20);
@@ -755,7 +753,7 @@
             if (oldSnmpConfig.exists())
             {
               context.notifyProgress(pnc.setProgress(20));
-              LOG.log(Level.INFO, summary.toString());
+              logger.debug(LocalizableMessage.raw(summary.toString()));
 
               final File snmpConfig =
                   new File(UpgradeUtils.configSnmpSecurityDirectory,
@@ -846,27 +844,26 @@
   {
     if (changeCount != 0)
     {
-      LOG.log(Level.INFO, INFO_UPGRADE_CHANGE_DONE_IN_SPECIFIC_FILE.get(
-          fileName, String.valueOf(changeCount)).toString());
+      logger.debug(INFO_UPGRADE_CHANGE_DONE_IN_SPECIFIC_FILE.get(
+          fileName, String.valueOf(changeCount)));
     }
     else
     {
-      LOG.log(Level.INFO, INFO_UPGRADE_NO_CHANGE_DONE_IN_SPECIFIC_FILE.get(
-          fileName).toString());
+      logger.debug(INFO_UPGRADE_NO_CHANGE_DONE_IN_SPECIFIC_FILE.get(fileName));
     }
   }
 
   private static void displayTaskLogInformation(final String summary,
       final String filter, final String... ldif)
   {
-    LOG.log(Level.INFO, summary);
+    logger.debug(LocalizableMessage.raw(summary));
     if (filter != null)
     {
-      LOG.log(Level.INFO, filter);
+      logger.debug(LocalizableMessage.raw(filter));
     }
     if (ldif != null)
     {
-      LOG.log(Level.INFO, Arrays.asList(ldif).toString());
+      logger.debug(LocalizableMessage.raw(Arrays.asList(ldif).toString()));
     }
   }
 
@@ -876,7 +873,7 @@
   {
     countErrors++;
     context.notifyProgress(pnc.setProgress(-100));
-    LOG.log(Level.SEVERE, message.toString());
+    logger.error(LocalizableMessage.raw(message.toString()));
     if (!context.isIgnoreErrorsMode())
     {
       throw new ClientException(EXIT_CODE_ERROR, message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
index e5dd73c..1a5707e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
@@ -21,15 +21,16 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2013-2014 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.tools.upgrade;
 
 import java.io.*;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import org.forgerock.opendj.ldap.*;
 import org.forgerock.opendj.ldap.requests.AddRequest;
@@ -63,11 +64,7 @@
 final class UpgradeUtils
 {
 
-  /**
-   * Logger for the upgrade.
-   */
-  private final static Logger LOG = Logger
-      .getLogger(UpgradeCli.class.getName());
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The config folder of the current instance. */
   static final File configDirectory = new File(getInstancePath(),
@@ -422,7 +419,7 @@
     }
     catch (Exception ex)
     {
-      LOG.log(Level.SEVERE, ex.getMessage());
+      logger.error(LocalizableMessage.raw(ex.getMessage()));
     }
     finally
     {
@@ -496,20 +493,20 @@
                     changeType, lines));
             entry = Entries.modifyEntryPermissive(entry, mr.getModifications());
             changeCount++;
-            LOG.log(Level.INFO,
+            logger.debug(LocalizableMessage.raw(
                 String.format("The following entry has been modified : %s",
-                    entry.getName()));
+                    entry.getName())));
           }
           catch (Exception ex)
           {
-            LOG.log(Level.SEVERE, ex.getMessage());
+            logger.error(LocalizableMessage.raw(ex.getMessage()));
           }
         }
         if (dn != null // This is an ADD
             && entry.getName().equals(DN.valueOf(dn)))
         {
-          LOG.log(Level.INFO, String.format("Entry %s found", entry.getName()
-              .toString()));
+          logger.debug(LocalizableMessage.raw(String.format("Entry %s found", entry.getName()
+              .toString())));
           alreadyExist = true;
         }
         writer.writeEntry(entry);
@@ -520,8 +517,8 @@
       {
         final AddRequest ar = Requests.newAddRequest(lines);
         writer.writeEntry(ar);
-        LOG.log(Level.INFO, String.format("Entry successfully added %s in %s",
-            dn, original.getAbsolutePath()));
+        logger.debug(LocalizableMessage.raw(String.format("Entry successfully added %s in %s",
+            dn, original.getAbsolutePath())));
         changeCount++;
       }
     }
@@ -543,7 +540,7 @@
     }
     catch (IOException e)
     {
-      LOG.log(Level.SEVERE, e.getMessage());
+      logger.error(LocalizableMessage.raw(e.getMessage()));
       deleteRecursively(original);
       throw e;
     }
@@ -614,8 +611,8 @@
           destinationSchemaEntry.getAttribute("attributeTypes").add(
               attributeType);
           changeCount++;
-          LOG.log(Level.INFO, String.format("Added %s", attributeType
-              .toString()));
+          logger.debug(LocalizableMessage.raw(String.format("Added %s", attributeType
+              .toString())));
         }
       }
 
@@ -627,8 +624,8 @@
               getSchemaElement(templateSchemaEntry, "objectClasses", oc);
           destinationSchemaEntry.getAttribute("objectClasses").add(objectClass);
           changeCount++;
-          LOG.log(Level.INFO,
-              String.format("Added %s", objectClass.toString()));
+          logger.debug(LocalizableMessage.raw(
+              String.format("Added %s", objectClass.toString())));
         }
       }
 
@@ -658,7 +655,7 @@
     }
     catch (IOException e)
     {
-      LOG.log(Level.SEVERE, e.getMessage());
+      logger.error(LocalizableMessage.raw(e.getMessage()));
       deleteRecursively(copy);
       throw e;
     }
@@ -770,8 +767,8 @@
             new SchemaConfigManager.SchemaFileFilter();
         for (final File f : folder.listFiles(filter))
         {
-          LOG.log(Level.INFO, String.format("Processing %s", f
-              .getAbsolutePath()));
+          logger.debug(LocalizableMessage.raw(String.format("Processing %s", f
+              .getAbsolutePath())));
           reader = new LDIFEntryReader(new FileInputStream(f));
           try
           {
@@ -804,28 +801,28 @@
         File parentDirectory = destination.getParentFile();
         if (!parentDirectory.exists())
         {
-          LOG.log(Level.INFO, String.format("Parent file of %s doesn't exist",
-              destination.getPath()));
+          logger.debug(LocalizableMessage.raw(String.format("Parent file of %s doesn't exist",
+              destination.getPath())));
 
           parentDirectory.mkdirs();
 
-          LOG.log(Level.INFO, String.format("Parent directory %s created.",
-              parentDirectory.getPath()));
+          logger.debug(LocalizableMessage.raw(String.format("Parent directory %s created.",
+              parentDirectory.getPath())));
         }
         if (!destination.exists())
         {
           destination.createNewFile();
         }
 
-        LOG.log(Level.INFO, String.format("Writing entries in %s.", destination
-            .getAbsolutePath()));
+        logger.debug(LocalizableMessage.raw(String.format("Writing entries in %s.", destination
+            .getAbsolutePath())));
 
         writer = new LDIFEntryWriter(new FileOutputStream(destination));
         writer.writeEntry(theNewSchemaEntry);
 
-        LOG.log(Level.INFO, String.format(
+        logger.debug(LocalizableMessage.raw(String.format(
             "%s created and completed successfully.", destination
-                .getAbsolutePath()));
+                .getAbsolutePath())));
       }
     }
     finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/AbstractOperation.java b/opendj3-server-dev/src/server/org/opends/server/types/AbstractOperation.java
index c5b0984..f0ed7c6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/AbstractOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/AbstractOperation.java
@@ -33,14 +33,12 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.controls.ControlDecoder;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPControl;
 import org.opends.server.types.operation.PostResponseOperation;
 import org.opends.server.types.operation.PreParseOperation;
 import org.forgerock.util.Reject;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 /**
  * This class defines a generic operation that may be processed by the
  * Directory Server.  Specific subclasses should implement specific
@@ -59,10 +57,7 @@
 public abstract class AbstractOperation
        implements Operation, PreParseOperation, PostResponseOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The set of response controls that will always be returned for
@@ -610,10 +605,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -794,10 +786,7 @@
         catch (Exception e)
         {
           // Should not happen.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/AttributeBuilder.java b/opendj3-server-dev/src/server/org/opends/server/types/AttributeBuilder.java
index 9e7a001..f78f257 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/AttributeBuilder.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/AttributeBuilder.java
@@ -28,7 +28,6 @@
 
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteSequence;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.AbstractSet;
@@ -47,7 +46,7 @@
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.util.Reject;
 
 
@@ -116,11 +115,7 @@
   private static abstract class RealAttribute
     extends AbstractAttribute
   {
-
-    /**
-     * The tracer object for the debug logger.
-     */
-    private static final DebugTracer TRACER = getTracer();
+    private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
     // The attribute type for this attribute.
     private final AttributeType attributeType;
@@ -177,10 +172,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize the provided value. We should return
         // "undefined".
@@ -200,10 +192,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // We couldn't normalize one of the attribute values. If we
           // can't find a definite match, then we should return
@@ -284,10 +273,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize the provided value. We should return
         // "undefined".
@@ -310,10 +296,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // We couldn't normalize one of the attribute values. If we
           // can't find a definite match, then we should return
@@ -371,10 +354,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         // We couldn't normalize the provided value. We should return
         // "undefined".
@@ -396,10 +376,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // We couldn't normalize one of the attribute values. If we
           // can't find a definite match, then we should return
@@ -442,10 +419,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // The substring couldn't be normalized. We have to return
           // "undefined".
@@ -470,10 +444,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // The substring couldn't be normalized. We have to return
             // "undefined".
@@ -496,10 +467,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // The substring couldn't be normalized. We have to return
           // "undefined".
@@ -524,10 +492,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // The value couldn't be normalized. If we can't find a
           // definite match, then we should return "undefined".
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java b/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
index 6d9da79..9eec58f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
@@ -39,8 +39,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.schema.AttributeTypeSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -70,10 +69,7 @@
        extends CommonSchemaElements
        implements SchemaFileElement, Comparable<AttributeType>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The approximate matching rule for this attribute type.
   private final ApproximateMatchingRule approximateMatchingRule;
@@ -300,10 +296,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java b/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
index dc7380d..b9b92df 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
@@ -32,11 +32,9 @@
 
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.EqualityMatchingRule;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -141,11 +139,7 @@
   private static final class DelayedNormalizationValue implements
       AttributeValue
   {
-
-    /**
-     * The tracer object for the debug logger.
-     */
-    private static final DebugTracer TRACER = getTracer();
+    private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
     private final AttributeType attributeType;
 
@@ -224,10 +218,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           return value.equals(attrValue.getValue());
         }
@@ -253,10 +244,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         valueToHash = value;
       }
@@ -311,11 +299,7 @@
   private static final class PreNormalizedValue
       implements AttributeValue
   {
-
-    /**
-     * The tracer object for the debug logger.
-     */
-    private static final DebugTracer TRACER = getTracer();
+    private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
     private final ByteString value;
 
@@ -375,10 +359,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           return value.equals(attrValue.getValue());
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/BackupDirectory.java b/opendj3-server-dev/src/server/org/opends/server/types/BackupDirectory.java
index a224f20..e9ed00e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/BackupDirectory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/BackupDirectory.java
@@ -41,8 +41,7 @@
 
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -62,10 +61,7 @@
      mayInvoke=true)
 public final class BackupDirectory
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -330,10 +326,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_BACKUPDIRECTORY_CANNOT_CREATE_DIRECTORY.
             get(path, getExceptionMessage(e));
@@ -402,10 +395,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message =
               ERR_BACKUPDIRECTORY_CANNOT_DELETE_SAVED_DESCRIPTOR.
@@ -421,10 +411,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_BACKUPDIRECTORY_CANNOT_RENAME_CURRENT_DESCRIPTOR.
@@ -443,10 +430,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
         ERR_BACKUPDIRECTORY_CANNOT_RENAME_NEW_DESCRIPTOR.
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/BackupInfo.java b/opendj3-server-dev/src/server/org/opends/server/types/BackupInfo.java
index 4586963..067bb45 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/BackupInfo.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/BackupInfo.java
@@ -40,8 +40,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.util.Base64;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -59,10 +58,7 @@
      mayInvoke=true)
 public final class BackupInfo
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -601,10 +597,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_BACKUPINFO_CANNOT_DECODE.get(
           backupPath, getExceptionMessage(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/ByteString.java b/opendj3-server-dev/src/server/org/opends/server/types/ByteString.java
index 9e4e36e..52d5d76 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/ByteString.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/ByteString.java
@@ -27,13 +27,12 @@
 package org.opends.server.types;
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 import java.nio.channels.WritableByteChannel;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.StaticUtils;
 
 
@@ -48,7 +47,7 @@
   private static final ByteString EMPTY = wrap(new byte[0]);
 
   // Used for tracing exceptions.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -340,10 +339,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       stringValue = new String(b, offset, length);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/ByteStringBuilder.java b/opendj3-server-dev/src/server/org/opends/server/types/ByteStringBuilder.java
index e097dc1..7a8e4b9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/ByteStringBuilder.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/ByteStringBuilder.java
@@ -29,8 +29,6 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -39,7 +37,7 @@
 import java.nio.channels.WritableByteChannel;
 import java.util.zip.DataFormatException;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -322,7 +320,7 @@
   }
 
   // Used for tracing exceptions.
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The buffer where data is stored.
   private byte[] buffer;
@@ -711,10 +709,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           return append(s.getBytes());
         }
       }
@@ -928,9 +923,9 @@
 
     if (compressedSize != -1)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Compression %d/%d%n", compressedSize,
+        logger.trace("Compression %d/%d%n", compressedSize,
             length);
       }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java b/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
index fcdeeee..5f83b63 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
@@ -37,8 +37,7 @@
 
 import org.opends.server.schema.DITContentRuleSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -58,10 +57,7 @@
 public final class DITContentRule
        implements SchemaFileElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Indicates whether this content rule is declared "obsolete".
   private final boolean isObsolete;
@@ -157,10 +153,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/DITStructureRule.java b/opendj3-server-dev/src/server/org/opends/server/types/DITStructureRule.java
index a664526..5467c16 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/DITStructureRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/DITStructureRule.java
@@ -37,8 +37,7 @@
 
 import org.opends.server.schema.DITStructureRuleSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -56,10 +55,7 @@
 public final class DITStructureRule
        implements SchemaFileElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Indicates whether this DIT structure rule is declared "obsolete".
   private final boolean isObsolete;
@@ -138,10 +134,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/DN.java b/opendj3-server-dev/src/server/org/opends/server/types/DN.java
index c7b8efa..b4a326b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/DN.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/DN.java
@@ -36,11 +36,10 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
 
@@ -63,13 +62,7 @@
  *        ensure continued interoperability with third-party
  *        applications that rely on that functionality.
  */
-
-
-
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * A singleton instance of the null DN (a DN with no components).
@@ -2174,10 +2167,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.
@@ -2397,10 +2387,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message =
             ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.
@@ -2643,10 +2630,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.
           get(dnString, String.valueOf(e));
@@ -2693,10 +2677,7 @@
       // return false on an exception than to perform the checks to
       // see if it meets the appropriate
       // conditions.
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       return false;
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/Entry.java b/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
index 0b3d85a..e14b8a6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
@@ -45,7 +45,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PluginConfigManager;
 import org.opends.server.core.SubentryManager;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.SubEntry.CollectiveConflictBehavior;
 import org.opends.server.util.LDIFException;
 import org.opends.server.util.LDIFWriter;
@@ -54,7 +54,6 @@
 import static org.opends.messages.UtilityMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.types.ResultCode.*;
 import static org.opends.server.util.LDIFWriter.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -86,10 +85,7 @@
 public class Entry
        implements ProtocolElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of operational attributes for this entry. */
   private Map<AttributeType,List<Attribute>> operationalAttributes;
@@ -301,10 +297,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         lowerName = toLowerCase(v.getValue().toString());
       }
@@ -1490,10 +1483,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           ocName = toLowerCase(v.getValue().toString());
         }
@@ -2394,10 +2384,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message =
                    ERR_ENTRY_SCHEMA_COULD_NOT_CHECK_DSR.get(
@@ -2489,10 +2476,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message =
                    ERR_ENTRY_SCHEMA_COULD_NOT_CHECK_PARENT_DSR.get(
@@ -2861,9 +2845,9 @@
     {
       // This should not happen
       // The server doesn't have this objectclass defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning(
+        logger.trace(
             "No %s objectclass is defined in the server schema.",
             objectClassName);
       }
@@ -2880,9 +2864,9 @@
     {
       // This should not happen
       // The server doesn't have this attribute type defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning(
+        logger.trace(
             "No %s attribute type is defined in the server schema.",
             attrTypeName);
       }
@@ -2929,9 +2913,9 @@
     {
       // This should not happen -- The server doesn't have a ref
       // attribute type defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning(
+        logger.trace(
             "No %s attribute type is defined in the server schema.",
                      ATTR_REFERRAL_URL);
       }
@@ -2997,9 +2981,9 @@
     {
       // This should not happen -- The server doesn't have an
       // aliasedObjectName attribute type defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning(
+        logger.trace(
             "No %s attribute type is defined in the server schema.",
                      ATTR_ALIAS_DN);
       }
@@ -3061,9 +3045,9 @@
     {
       // This should not happen
       // The server doesn't have this object class defined.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugWarning(
+        logger.trace(
             "No %s objectclass is defined in the server schema.",
             objectClassLowerCase);
       }
@@ -3283,10 +3267,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
             }
           }
           else if (subEntry.isInheritedFromRDNCollective() &&
@@ -3315,10 +3296,7 @@
               }
               catch (DirectoryException de)
               {
-                if (debugEnabled())
-                {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-                }
+                logger.traceException(de);
               }
             }
             else
@@ -3808,10 +3786,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_ENTRY_DECODE_EXCEPTION.get(getExceptionMessage(e));
@@ -4128,9 +4103,9 @@
     {
       if (! exportConfig.includeEntry(this))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(
+          logger.trace(
               "Skipping entry %s because of the export " +
                   "configuration.", String.valueOf(dn));
         }
@@ -4139,10 +4114,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_EXPORT.
@@ -4198,9 +4170,9 @@
     }
     else
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Skipping objectclasses for entry %s because of " +
             "the export configuration.", String.valueOf(dn));
       }
@@ -4220,9 +4192,9 @@
     }
     else
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Skipping all operational attributes for entry %s " +
             "because of the export configuration.",
             String.valueOf(dn));
@@ -4301,9 +4273,9 @@
       }
       else
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Skipping %s attribute %s for entry %s "
+          logger.trace("Skipping %s attribute %s for entry %s "
               + "because of the export configuration.", attributeType, attrType
               .getNameOrOID(), String.valueOf(dn));
         }
@@ -4736,10 +4708,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           lowerName = toLowerCase(v.getValue().toString());
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/FilePermission.java b/opendj3-server-dev/src/server/org/opends/server/types/FilePermission.java
index 1b5efdc..0799573 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/FilePermission.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/FilePermission.java
@@ -37,8 +37,7 @@
 
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.UtilityMessages.*;
 
 
@@ -59,10 +58,7 @@
      mayInvoke=true)
 public class FilePermission
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -268,16 +264,16 @@
     }
     catch (NoSuchMethodException e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.INFO, e);
+        logger.traceException(e);
       }
     }
     catch (ClassNotFoundException e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.INFO, e);
+        logger.traceException(e);
       }
     }
     finally
@@ -684,10 +680,7 @@
    }
    catch (Exception e)
    {
-     if (debugEnabled())
-     {
-       TRACER.debugCaught(DebugLogLevel.ERROR, e);
-     }
+     logger.traceException(e);
    }
    return false;
  }
@@ -745,10 +738,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         exceptionThrown = true;
       }
     }
@@ -778,10 +768,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       exceptionThrown = true;
     }
 
@@ -809,10 +796,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         exceptionThrown = true;
       }
     }
@@ -834,10 +818,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       exceptionThrown = true;
     }
 
@@ -866,10 +847,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         exceptionThrown = true;
       }
     }
@@ -899,10 +877,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       exceptionThrown = true;
     }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/HostPort.java b/opendj3-server-dev/src/server/org/opends/server/types/HostPort.java
index f6a2df7..ead704d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/HostPort.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/HostPort.java
@@ -32,11 +32,10 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class defines a data structure that combines an address and port number,
@@ -55,7 +54,7 @@
 {
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Constant that represents the local host. */
   private static final String LOCALHOST = "localhost";
@@ -152,7 +151,7 @@
       catch (SocketException e)
       {
         // Ignore and keep the old set.
-        TRACER.debugCaught(DebugLogLevel.WARNING, e);
+        logger.traceException(e);
       }
       localAddressesTimeStamp = currentTimeStamp; // Publishes.
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/InvokableMethod.java b/opendj3-server-dev/src/server/org/opends/server/types/InvokableMethod.java
index 9ad4a32..a7b38e6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/InvokableMethod.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/InvokableMethod.java
@@ -34,8 +34,7 @@
 import org.opends.server.api.InvokableComponent;
 import org.opends.server.config.ConfigAttribute;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -50,10 +49,7 @@
      mayInvoke=true)
 public class InvokableMethod
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -322,19 +318,13 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       throw new MBeanException(de, de.getMessage());
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new MBeanException(e);
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/LDAPURL.java b/opendj3-server-dev/src/server/org/opends/server/types/LDAPURL.java
index d507240..a884e3b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/LDAPURL.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/LDAPURL.java
@@ -33,10 +33,9 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.types.ResultCode.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -54,10 +53,7 @@
      mayInvoke=true)
 public final class LDAPURL
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The default scheme that will be used if none is provided.
@@ -829,10 +825,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This should never happen.
       LocalizableMessage message = ERR_LDAPURL_CANNOT_CREATE_UTF8_STRING.get(
@@ -1343,10 +1336,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (rawBaseDN == null)
       {
@@ -1381,10 +1371,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (rawFilter == null)
       {
@@ -1480,10 +1467,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (rawBaseDN != null)
       {
@@ -1504,10 +1488,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       if (rawFilter != null)
       {
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/LDIFExportConfig.java b/opendj3-server-dev/src/server/org/opends/server/types/LDIFExportConfig.java
index 6cfe251..2e68d04 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/LDIFExportConfig.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/LDIFExportConfig.java
@@ -27,7 +27,6 @@
 package org.opends.server.types;
 
 import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 import java.io.*;
@@ -38,7 +37,7 @@
 import java.util.zip.GZIPOutputStream;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This class defines a data structure for holding configuration
@@ -52,10 +51,7 @@
 public final class LDIFExportConfig extends OperationConfig
   implements Closeable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Indicates whether the data should be compressed as it is written. */
   private boolean compressData;
@@ -944,10 +940,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/LDIFImportConfig.java b/opendj3-server-dev/src/server/org/opends/server/types/LDIFImportConfig.java
index db5f13c..8c05615 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/LDIFImportConfig.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/LDIFImportConfig.java
@@ -37,8 +37,7 @@
 import org.opends.server.tools.makeldif.MakeLDIFInputStream;
 import org.opends.server.tools.makeldif.TemplateFile;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.messages.UtilityMessages.*;
 
 
@@ -55,10 +54,7 @@
 public final class LDIFImportConfig extends OperationConfig
                                     implements Closeable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -1339,10 +1335,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -1354,10 +1347,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -1369,10 +1359,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/LockManager.java b/opendj3-server-dev/src/server/org/opends/server/types/LockManager.java
index b7a2199..43e20c9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/LockManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/LockManager.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions copyright 2013 ForgeRock AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 package org.opends.server.types;
 
@@ -32,9 +32,7 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
-
-import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * This class defines a Directory Server component that can keep track
@@ -49,10 +47,7 @@
      mayInvoke=true)
 public final class LockManager
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The default setting for the use of fair ordering locks.
@@ -136,26 +131,23 @@
           ReentrantReadWriteLock lock = oldTable.get(dn);
           if (lock.isWriteLocked())
           {
-            TRACER.debugWarning("Found stale write lock on " +
+            logger.trace("Found stale write lock on " +
                                 dn.toString());
           }
           else if (lock.getReadLockCount() > 0)
           {
-            TRACER.debugWarning("Found stale read lock on " +
+            logger.trace("Found stale read lock on " +
                                 dn.toString());
           }
           else
           {
-            TRACER.debugWarning("Found stale unheld lock on " +
+            logger.trace("Found stale unheld lock on " +
                                 dn.toString());
           }
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/MatchingRuleUse.java b/opendj3-server-dev/src/server/org/opends/server/types/MatchingRuleUse.java
index daac402..a6dc5bf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/MatchingRuleUse.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/MatchingRuleUse.java
@@ -38,8 +38,7 @@
 import org.opends.server.api.MatchingRule;
 import org.opends.server.schema.MatchingRuleUseSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -59,10 +58,7 @@
 public final class MatchingRuleUse
        implements SchemaFileElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Indicates whether this matching rule use is declared "obsolete".
   private final boolean isObsolete;
@@ -139,10 +135,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/NameForm.java b/opendj3-server-dev/src/server/org/opends/server/types/NameForm.java
index 00e6c30..674bf32 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/NameForm.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/NameForm.java
@@ -37,8 +37,7 @@
 
 import org.opends.server.schema.NameFormSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -58,10 +57,7 @@
 public final class NameForm
        implements SchemaFileElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // Indicates whether this name form is declared "obsolete".
   private final boolean isObsolete;
@@ -146,10 +142,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/ObjectClass.java b/opendj3-server-dev/src/server/org/opends/server/types/ObjectClass.java
index 5f4f37a..76f669a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/ObjectClass.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/ObjectClass.java
@@ -38,8 +38,7 @@
 
 import org.opends.server.schema.ObjectClassSyntax;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.util.ServerConstants.*;
 import static org.forgerock.util.Reject.*;
 
@@ -69,10 +68,7 @@
        extends CommonSchemaElements
        implements SchemaFileElement
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The set of optional attribute types for this objectclass.
   private final Set<AttributeType> optionalAttributes;
@@ -192,10 +188,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         defStr = definition;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/RDN.java b/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
index 72d19fa..c0a7ecf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
@@ -34,10 +34,9 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -53,10 +52,7 @@
 public final class RDN
        implements Comparable<RDN>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of attribute types for the elements in this RDN. */
   private AttributeType[] attributeTypes;
@@ -1069,10 +1065,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         buffer.append(getDNValue(attributeValues[pos].getValue()));
       }
   }
@@ -1209,10 +1202,7 @@
     }
     catch (DirectoryException e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       val1 = value1.getValue();
       val2 = value2.getValue();
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/RawAttribute.java b/opendj3-server-dev/src/server/org/opends/server/types/RawAttribute.java
index f8fa7e7..2e088a3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/RawAttribute.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/RawAttribute.java
@@ -28,7 +28,6 @@
 
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.forgerock.util.Reject.*;
 
@@ -37,7 +36,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.protocols.ldap.LDAPAttribute;
@@ -55,10 +54,7 @@
      mayInvoke=true)
 public abstract class RawAttribute
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -243,10 +239,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ATTRIBUTE_DECODE_SEQUENCE.get(String.valueOf(e));
@@ -261,10 +254,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ATTRIBUTE_DECODE_TYPE.get(String.valueOf(e));
@@ -285,10 +275,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ATTRIBUTE_DECODE_VALUES.get(String.valueOf(e));
@@ -301,10 +288,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_ATTRIBUTE_DECODE_SEQUENCE.get(String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/RawFilter.java b/opendj3-server-dev/src/server/org/opends/server/types/RawFilter.java
index c37d902..4b82eab 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/RawFilter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/RawFilter.java
@@ -34,12 +34,11 @@
 import java.util.ArrayList;
 import java.io.IOException;
 
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.*;
 import org.opends.server.protocols.ldap.LDAPFilter;
 
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -58,10 +57,7 @@
      mayInvoke=true)
 public abstract class RawFilter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new LDAP filter from the provided filter string.
@@ -523,9 +519,9 @@
         stream.writeEndSequence();
         return;
       default:
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Invalid search filter type: %s",
+          logger.trace("Invalid search filter type: %s",
                             filterType);
         }
     }
@@ -625,9 +621,9 @@
         break;
       default:
         // This should never happen.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Invalid filter type %x for a " +
+          logger.trace("Invalid filter type %x for a " +
               "compound filter", type);
         }
         filterType = null;
@@ -652,10 +648,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_COMPOUND_COMPONENTS.
           get(String.valueOf(e));
@@ -694,10 +687,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_NOT_COMPONENT.get(String.valueOf(e));
@@ -754,9 +744,9 @@
         break;
       default:
         // This should never happen.
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugError("Invalid filter type %x for a " +
+          logger.trace("Invalid filter type %x for a " +
               "type-and-value filter", type);
         }
         filterType = null;
@@ -768,10 +758,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_TV_SEQUENCE.get(String.valueOf(e));
@@ -785,10 +772,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_TV_TYPE.get(String.valueOf(e));
@@ -803,10 +787,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_TV_VALUE.get(String.valueOf(e));
@@ -819,10 +800,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_TV_SEQUENCE.get(String.valueOf(e));
@@ -856,10 +834,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_SEQUENCE.get(
           String.valueOf(e));
@@ -874,10 +849,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_TYPE.get(
           String.valueOf(e));
@@ -890,10 +862,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_ELEMENTS.get(
           String.valueOf(e));
@@ -941,10 +910,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_VALUES.get(
           String.valueOf(e));
@@ -957,10 +923,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_ELEMENTS.get(
           String.valueOf(e));
@@ -973,10 +936,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_SUBSTRING_SEQUENCE.get(
           String.valueOf(e));
@@ -1012,10 +972,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_FILTER_DECODE_PRESENCE_TYPE.get(String.valueOf(e));
@@ -1049,10 +1006,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_EXTENSIBLE_SEQUENCE.
           get(String.valueOf(e));
@@ -1084,10 +1038,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_EXTENSIBLE_ELEMENTS.
           get(String.valueOf(e));
@@ -1100,10 +1051,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_FILTER_DECODE_EXTENSIBLE_SEQUENCE.
           get(String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/RawModification.java b/opendj3-server-dev/src/server/org/opends/server/types/RawModification.java
index de73c42..c6e0d2c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/RawModification.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/RawModification.java
@@ -28,7 +28,6 @@
 
 import org.forgerock.opendj.ldap.ByteString;
 import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
 
@@ -36,7 +35,7 @@
 import java.util.ArrayList;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.asn1.ASN1Reader;
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.protocols.ldap.LDAPModification;
@@ -55,10 +54,7 @@
      mayInvoke=true)
 public abstract class RawModification
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Creates a new raw modification with the provided type and
@@ -254,10 +250,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_MODIFICATION_DECODE_SEQUENCE.get(
           String.valueOf(e));
@@ -296,10 +289,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_MODIFICATION_DECODE_MOD_TYPE.get(
           String.valueOf(e));
@@ -314,10 +304,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message =
           ERR_LDAP_MODIFICATION_DECODE_ATTR.get(String.valueOf(e));
@@ -330,10 +317,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_LDAP_MODIFICATION_DECODE_SEQUENCE.get(
           String.valueOf(e));
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/Schema.java b/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
index e27bd36..d64f8be 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
@@ -50,14 +50,13 @@
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SchemaConfigManager;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.CaseIgnoreEqualityMatchingRule;
 import org.opends.server.util.StaticUtils;
 
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -87,10 +86,7 @@
      mayInvoke=true)
 public final class Schema
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -3513,10 +3509,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // This is definitely not ideal, but it's not the end of the
       // world.  The worst that should happen is that the schema
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/SearchFilter.java b/opendj3-server-dev/src/server/org/opends/server/types/SearchFilter.java
index d9986b7..ce486d7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/SearchFilter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/SearchFilter.java
@@ -45,8 +45,7 @@
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -65,10 +64,7 @@
      mayInvoke=true)
 public final class SearchFilter
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The attribute type for this filter.
   private final AttributeType attributeType;
@@ -631,19 +627,13 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       throw de;
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       LocalizableMessage message = ERR_SEARCH_FILTER_UNCAUGHT_EXCEPTION.get(
           filterString, String.valueOf(e));
@@ -2394,9 +2384,9 @@
       // "undefined" in RFC 2251, but is considered one of the
       // TRUE/FALSE filters in RFC 4526, in which case we should
       // always return true.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning TRUE for LDAP TRUE " +
+        logger.trace("Returning TRUE for LDAP TRUE " +
             "filter (&)");
       }
       return ConditionResult.TRUE;
@@ -2426,18 +2416,18 @@
           case TRUE:
             break;
           case FALSE:
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugVerbose(
+              logger.trace(
                   "Returning FALSE for AND component %s in " +
                   "filter %s for entry %s",
                            f, completeFilter, entry.getName());
             }
             return result;
           case UNDEFINED:
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo(
+              logger.trace(
              "Undefined result for AND component %s in filter " +
              "%s for entry %s", f, completeFilter, entry.getName());
             }
@@ -2457,9 +2447,9 @@
 
       // If we have gotten here, then all the components must have
       // matched.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning TRUE for AND component %s in filter %s " +
             "for entry %s", this, completeFilter, entry.getName());
       }
@@ -2511,9 +2501,9 @@
       // "undefined" in RFC 2251, but is considered one of the
       // TRUE/FALSE filters in RFC 4526, in which case we should
       // always return false.
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("Returning FALSE for LDAP FALSE " +
+        logger.trace("Returning FALSE for LDAP FALSE " +
             "filter (|)");
       }
       return ConditionResult.FALSE;
@@ -2540,9 +2530,9 @@
                                depth+1))
         {
           case TRUE:
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugVerbose(
+              logger.trace(
                 "Returning TRUE for OR component %s in filter " +
                 "%s for entry %s",
                 f, completeFilter, entry.getName());
@@ -2551,9 +2541,9 @@
           case FALSE:
             break;
           case UNDEFINED:
-            if (debugEnabled())
+            if (logger.isTraceEnabled())
             {
-              TRACER.debugInfo(
+              logger.trace(
               "Undefined result for OR component %s in filter " +
               "%s for entry %s",
               f, completeFilter, entry.getName());
@@ -2574,9 +2564,9 @@
       }
 
 
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning %s for OR component %s in filter %s for " +
             "entry %s", result, this, completeFilter,
                         entry.getName());
@@ -2642,27 +2632,27 @@
       switch (result)
       {
         case TRUE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                "Returning FALSE for NOT component %s in filter " +
                "%s for entry %s",
                notComponent, completeFilter, entry.getName());
           }
           return ConditionResult.FALSE;
         case FALSE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Returning TRUE for NOT component %s in filter " +
                 "%s for entry %s",
                 notComponent, completeFilter, entry.getName());
           }
           return ConditionResult.TRUE;
         case UNDEFINED:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo(
+            logger.trace(
               "Undefined result for NOT component %s in filter " +
               "%s for entry %s",
               notComponent, completeFilter, entry.getName());
@@ -2729,9 +2719,9 @@
                                                attributeOptions);
     if ((attrs == null) || (attrs.isEmpty()))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning FALSE for equality component %s in " +
             "filter %s because entry %s didn't have attribute " +
             "type %s",
@@ -2745,9 +2735,9 @@
     MatchingRule matchingRule = attributeType.getEqualityMatchingRule();
     if (matchingRule == null)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(
+        logger.trace(
          "Attribute type %s does not have an equality matching " +
          "rule -- returning undefined.",
          attributeType.getNameOrOID());
@@ -2764,10 +2754,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We can't normalize the assertion value, so the result must be
       // undefined.
@@ -2784,9 +2771,9 @@
     {
       if (a.contains(dummyAttributeValue))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose(
+          logger.trace(
             "Returning TRUE for equality component %s in " +
             "filter %s for entry %s", this, completeFilter, entry.getName());
         }
@@ -2794,9 +2781,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose(
+      logger.trace(
           "Returning FALSE for equality component %s in filter " +
           "%s because entry %s didn't have attribute type " +
           "%s with value %s",
@@ -2859,9 +2846,9 @@
          entry.getAttribute(attributeType, attributeOptions);
     if ((attrs == null) || (attrs.isEmpty()))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning FALSE for substring component %s in " +
             "filter %s because entry %s didn't have attribute " +
             "type %s",
@@ -2881,9 +2868,9 @@
                                  subFinalElement))
       {
         case TRUE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Returning TRUE for substring component %s in " +
                 "filter %s for entry %s",
                          this, completeFilter, entry.getName());
@@ -2892,9 +2879,9 @@
         case FALSE:
           break;
         case UNDEFINED:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Undefined result encountered for substring " +
                 "component %s in filter %s for entry %s",
                          this, completeFilter, entry.getName());
@@ -2905,9 +2892,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose(
+      logger.trace(
           "Returning %s for substring component %s in filter " +
           "%s for entry %s",
           result, this, completeFilter, entry.getName());
@@ -2964,9 +2951,9 @@
          entry.getAttribute(attributeType, attributeOptions);
     if ((attrs == null) || (attrs.isEmpty()))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose("Returning FALSE for " +
+        logger.trace("Returning FALSE for " +
             "greater-or-equal component %s in filter %s " +
             "because entry %s didn't have attribute type %s",
                      this, completeFilter, entry.getName(),
@@ -2983,9 +2970,9 @@
       switch (a.greaterThanOrEqualTo(assertionValue))
       {
         case TRUE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Returning TRUE for greater-or-equal component " +
                 "%s in filter %s for entry %s",
                          this, completeFilter, entry.getName());
@@ -2994,9 +2981,9 @@
         case FALSE:
           break;
         case UNDEFINED:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Undefined result encountered for " +
                 "greater-or-equal component %s in filter %s " +
                 "for entry %s", this, completeFilter,
@@ -3008,9 +2995,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose(
+      logger.trace(
           "Returning %s for greater-or-equal component %s in " +
           "filter %s for entry %s",
                    result, this, completeFilter, entry.getName());
@@ -3067,9 +3054,9 @@
          entry.getAttribute(attributeType, attributeOptions);
     if ((attrs == null) || (attrs.isEmpty()))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning FALSE for less-or-equal component %s in " +
             "filter %s because entry %s didn't have attribute " +
             "type %s", this, completeFilter, entry.getName(),
@@ -3086,9 +3073,9 @@
       switch (a.lessThanOrEqualTo(assertionValue))
       {
         case TRUE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Returning TRUE for less-or-equal component %s " +
                 "in filter %s for entry %s",
                          this, completeFilter, entry.getName());
@@ -3097,9 +3084,9 @@
         case FALSE:
           break;
         case UNDEFINED:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Undefined result encountered for " +
                     "less-or-equal component %s in filter %s " +
                     "for entry %s",
@@ -3111,9 +3098,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose(
+      logger.trace(
           "Returning %s for less-or-equal component %s in " +
           "filter %s for entry %s",
                    result, this, completeFilter, entry.getName());
@@ -3158,9 +3145,9 @@
     // If so, then it's a match.  If not, then it's not a match.
     if (entry.hasAttribute(attributeType, attributeOptions))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning TRUE for presence component %s in " +
             "filter %s for entry %s",
             this, completeFilter, entry.getName());
@@ -3169,9 +3156,9 @@
     }
     else
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning FALSE for presence component %s in " +
             "filter %s for entry %s",
             this, completeFilter, entry.getName());
@@ -3229,9 +3216,9 @@
          entry.getAttribute(attributeType, attributeOptions);
     if ((attrs == null) || (attrs.isEmpty()))
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugVerbose(
+        logger.trace(
             "Returning FALSE for approximate component %s in " +
             "filter %s because entry %s didn't have attribute " +
             "type %s", this, completeFilter, entry.getName(),
@@ -3248,9 +3235,9 @@
       switch (a.approximatelyEqualTo(assertionValue))
       {
         case TRUE:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                "Returning TRUE for approximate component %s in " +
                "filter %s for entry %s",
                this, completeFilter, entry.getName());
@@ -3259,9 +3246,9 @@
         case FALSE:
           break;
         case UNDEFINED:
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugVerbose(
+            logger.trace(
                 "Undefined result encountered for approximate " +
                 "component %s in filter %s for entry %s",
                          this, completeFilter, entry.getName());
@@ -3272,9 +3259,9 @@
       }
     }
 
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugVerbose(
+      logger.trace(
           "Returning %s for approximate component %s in filter " +
           "%s for entry %s",
           result, this, completeFilter, entry.getName());
@@ -3330,9 +3317,9 @@
                 toLowerCase(matchingRuleID));
       if (matchingRule == null)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo(
+          logger.trace(
               "Unknown matching rule %s defined in extensibleMatch " +
               "component of filter %s -- returning undefined.",
                     matchingRuleID, this);
@@ -3356,9 +3343,9 @@
         matchingRule = attributeType.getEqualityMatchingRule();
         if (matchingRule == null)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo(
+            logger.trace(
              "Attribute type %s does not have an equality matching " +
              "rule -- returning undefined.",
              attributeType.getNameOrOID());
@@ -3380,9 +3367,9 @@
       {
         if (! mru.appliesToAttribute(attributeType))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo(
+            logger.trace(
                 "Attribute type %s is not allowed for use with " +
                 "matching rule %s because of matching rule use " +
                 "definition %s", attributeType.getNameOrOID(),
@@ -3404,10 +3391,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       // We can't normalize the assertion value, so the result must be
       // undefined.
@@ -3455,10 +3439,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               // We couldn't normalize one of the values.  If we don't
               // find a definite match, then we should return
@@ -3503,10 +3484,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               // We couldn't normalize one of the values.  If we don't
               // find a definite match, then we should return
@@ -3545,10 +3523,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           // We couldn't normalize one of the values.  If we don't
           // find a definite match, then we should return undefined.
@@ -3593,10 +3568,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               // We couldn't normalize one of the values.  If we don't
               // find a definite match, then we should return
@@ -3655,10 +3627,7 @@
           }
           catch (Exception e)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, e);
-            }
+            logger.traceException(e);
 
             // We couldn't normalize one of the values.  If we don't
             // find a definite match, then we should return undefined.
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/SortKey.java b/opendj3-server-dev/src/server/org/opends/server/types/SortKey.java
index 0b9ec9a..d4f20e8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/SortKey.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/SortKey.java
@@ -28,8 +28,7 @@
 
 import org.opends.server.api.OrderingMatchingRule;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 
@@ -48,10 +47,7 @@
      mayInvoke=true)
 public final class SortKey
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The attribute type for this sort key.
   private AttributeType attributeType;
@@ -198,10 +194,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return 0;
       }
@@ -225,10 +218,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         return 0;
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java b/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
index 6160cb6..be3c007 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
@@ -34,9 +34,8 @@
 import org.opends.server.api.Group;
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
 
@@ -56,10 +55,7 @@
      mayInvoke=true)
 public final class VirtualAttributeRule
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The attribute type for which the values should be generated. */
   private final AttributeType attributeType;
@@ -302,10 +298,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
@@ -334,10 +327,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
         }
       }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/EMailMessage.java b/opendj3-server-dev/src/server/org/opends/server/util/EMailMessage.java
index 044f042..ca78038 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/EMailMessage.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/EMailMessage.java
@@ -51,8 +51,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.util.args.ArgumentException;
 import org.opends.server.util.args.ArgumentParser;
 import org.opends.server.util.args.BooleanArgument;
@@ -60,7 +59,6 @@
 
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -78,10 +76,7 @@
      mayInvoke=true)
 public final class EMailMessage
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
   // The addresses of the recipients to whom this message should be sent.
@@ -398,10 +393,7 @@
       }
       catch (MessagingException me)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, me);
-        }
+        logger.traceException(me);
 
         LocalizableMessage msg = ERR_EMAILMSG_INVALID_SENDER_ADDRESS.get(
             String.valueOf(sender), me.getMessage());
@@ -423,10 +415,7 @@
         }
         catch (MessagingException me)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, me);
-          }
+          logger.traceException(me);
 
           LocalizableMessage msg = ERR_EMAILMSG_INVALID_RECIPIENT_ADDRESS.get(
               String.valueOf(recipient), me.getMessage());
@@ -473,10 +462,7 @@
       }
       catch (SendFailedException sfe)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, sfe);
-        }
+        logger.traceException(sfe);
 
         // We'll ignore this and hope that another server is available.  If not,
         // then at least save the exception so that we can throw it if all else
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/LDIFReader.java b/opendj3-server-dev/src/server/org/opends/server/util/LDIFReader.java
index c0c4fc3..ea8034f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/LDIFReader.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/LDIFReader.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.UtilityMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
 
@@ -46,7 +45,7 @@
 import org.opends.server.backends.jeb.importLDIF.Suffix;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PluginConfigManager;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.protocols.ldap.LDAPModification;
 import org.opends.server.types.*;
@@ -66,10 +65,7 @@
      mayInvoke=true)
 public final class LDIFReader implements Closeable
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The reader that will be used to read the data. */
   private BufferedReader reader;
@@ -271,9 +267,9 @@
         }
         else if (!importConfig.includeEntry(entryDN))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Skipping entry %s because the DN isn't" +
+            logger.trace("Skipping entry %s because the DN isn't" +
                     "one that should be included based on the include and " +
                     "exclude branches.", entryDN);
           }
@@ -286,9 +282,9 @@
         suffix = Importer.getMatchSuffix(entryDN, map);
         if(suffix == null)
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Skipping entry %s because the DN isn't" +
+            logger.trace("Skipping entry %s because the DN isn't" +
                     "one that should be included based on a suffix match" +
                     "check." ,entryDN);
           }
@@ -317,9 +313,9 @@
       }
       catch (LDIFException e)
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Skipping entry %s because reading" +
+          logger.trace("Skipping entry %s because reading" +
                   "its attributes failed.", entryDN);
         }
         LocalizableMessage message = ERR_LDIF_READ_ATTR_SKIP.get(String.valueOf(entryDN),
@@ -337,15 +333,15 @@
           toAttributesMap(operationalAttrBuilders);
       Entry entry =  new Entry(entryDN, objectClasses, userAttributes,
                                operationalAttributes);
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, entry.toString());
+      logger.trace(entry.toString());
 
       try
       {
         if (! importConfig.includeEntry(entry))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Skipping entry %s because the DN is not one " +
+            logger.trace("Skipping entry %s because the DN is not one " +
                 "that should be included based on the include and exclude " +
                 "filters.", entryDN);
           }
@@ -357,10 +353,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         suffix.removePending(entryDN);
         LocalizableMessage message = ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT.
             get(String.valueOf(entry.getName()), lastEntryLineNumber,
@@ -499,9 +492,9 @@
       }
       else if (!importConfig.includeEntry(entryDN))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugInfo("Skipping entry %s because the DN is not one that " +
+          logger.trace("Skipping entry %s because the DN is not one that " +
               "should be included based on the include and exclude branches.",
                     entryDN);
         }
@@ -536,15 +529,15 @@
           toAttributesMap(operationalAttrBuilders);
       Entry entry =  new Entry(entryDN, objectClasses, userAttributes,
                                operationalAttributes);
-      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, entry.toString());
+      logger.trace(entry.toString());
 
       try
       {
         if (! importConfig.includeEntry(entry))
         {
-          if (debugEnabled())
+          if (logger.isTraceEnabled())
           {
-            TRACER.debugInfo("Skipping entry %s because the DN is not one " +
+            logger.trace("Skipping entry %s because the DN is not one " +
                 "that should be included based on the include and exclude " +
                 "filters.", entryDN);
           }
@@ -555,10 +548,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         LocalizableMessage message = ERR_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT.
             get(String.valueOf(entry.getName()), lastEntryLineNumber,
@@ -903,9 +893,9 @@
     {
       // The value did not have a valid base64-encoding.
       final String stackTrace = StaticUtils.stackTraceToSingleLineString(e);
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo(
+        logger.trace(
             "Base64 decode failed for dn '%s', exception stacktrace: %s",
             encodedStr, stackTrace);
       }
@@ -926,9 +916,9 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("DN decode failed for: ", dnString);
+        logger.trace("DN decode failed for: ", dnString);
       }
 
       LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
@@ -940,9 +930,9 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugInfo("DN decode failed for: ", dnString);
+        logger.trace("DN decode failed for: ", dnString);
       }
       LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
               lastEntryLineNumber, line.toString(),
@@ -1067,9 +1057,9 @@
     {
       if (! importConfig.includeObjectClasses())
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Skipping objectclass %s for entry %s due to " +
+          logger.trace("Skipping objectclass %s for entry %s due to " +
               "the import configuration.", value, entryDN);
         }
         return;
@@ -1105,9 +1095,9 @@
 
       if (! importConfig.includeAttribute(attrType))
       {
-        if (debugEnabled())
+        if (logger.isTraceEnabled())
         {
-          TRACER.debugVerbose("Skipping attribute %s for entry %s due to the " +
+          logger.trace("Skipping attribute %s for entry %s due to the " +
               "import configuration.", attrName, entryDN);
         }
         return;
@@ -1313,10 +1303,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -1348,8 +1335,8 @@
         }
         rejectWriter.newLine();
       } catch (IOException ex) {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+        if (logger.isTraceEnabled())
+          logger.traceException(ex);
       }
     }
   }
@@ -1497,19 +1484,13 @@
       newRDN = RDN.decode(rdnStr);
     } catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
       LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
           lineNumber, line.toString(), de.getMessageObject());
       throw new LDIFException(message, lineNumber, true);
     } catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
       LocalizableMessage message =
           ERR_LDIF_INVALID_DN.get(lineNumber, line.toString(), e.getMessage());
       throw new LDIFException(message, lineNumber, true);
@@ -1555,19 +1536,13 @@
         newSuperiorDN = DN.valueOf(dnStr);
       } catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
         LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
             lineNumber, line.toString(), de.getMessageObject());
         throw new LDIFException(message, lineNumber, true);
       } catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
         LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
             lineNumber, line.toString(), e.getMessage());
         throw new LDIFException(message, lineNumber, true);
@@ -1826,10 +1801,7 @@
         catch (Exception e)
         {
           // The value did not have a valid base64-encoding.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_LDIF_COULD_NOT_BASE64_DECODE_ATTR.get(
                   String.valueOf(entryDN),
@@ -1853,10 +1825,7 @@
         catch (Exception e)
         {
           // The URL was malformed or had an invalid protocol.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_LDIF_INVALID_URL.get(String.valueOf(entryDN),
                                       lastEntryLineNumber,
@@ -1880,10 +1849,7 @@
         catch (Exception e)
         {
           // We were unable to read the contents of that URL for some reason.
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_LDIF_URL_IO_ERROR.get(String.valueOf(entryDN),
                                       lastEntryLineNumber,
@@ -1975,10 +1941,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/MultiOutputStream.java b/opendj3-server-dev/src/server/org/opends/server/util/MultiOutputStream.java
index 4d65e63..8de9021 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/MultiOutputStream.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/MultiOutputStream.java
@@ -30,11 +30,8 @@
 
 import java.io.OutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-
 import org.forgerock.util.Reject;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 
 /**
@@ -50,10 +47,7 @@
 public final class MultiOutputStream
        extends OutputStream
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -92,10 +86,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -115,10 +106,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -141,10 +129,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -169,10 +154,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -194,10 +176,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
index 2faf645..2254451 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
@@ -51,7 +51,7 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ServerContext;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.opends.server.util.args.Argument;
@@ -59,7 +59,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.UtilityMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -76,10 +75,7 @@
      mayInvoke=true)
 public final class StaticUtils
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * Private constructor to prevent instantiation.
@@ -123,10 +119,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       try
       {
@@ -134,10 +127,7 @@
       }
       catch (Exception e2)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
-        }
+        logger.traceException(e2);
 
         return s.getBytes();
       }
@@ -2495,10 +2485,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
 
       throw ioe;
@@ -2511,10 +2498,7 @@
       }
       catch(IOException e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
 
@@ -3209,10 +3193,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
           buffer.append(new String(b, i, (length - i)).toUpperCase());
         }
         break;
@@ -4600,10 +4581,7 @@
         }
         catch (IOException ignored)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
-          }
+          logger.traceException(ignored);
         }
       }
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/TimeThread.java b/opendj3-server-dev/src/server/org/opends/server/util/TimeThread.java
index a3bdb9d..cd5a0de 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/TimeThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/TimeThread.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
- *      Portions copyright 2011 ForgeRock AS.
+ *      Portions Copyright 2011-2014 ForgeRock AS.
  */
 package org.opends.server.util;
 
@@ -41,11 +41,8 @@
 import java.util.concurrent.TimeUnit;
 
 import org.opends.server.api.DirectoryThread;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.GeneralizedTimeSyntax;
-import org.opends.server.types.DebugLogLevel;
-
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class provides an application-wide timing service. It provides
@@ -159,10 +156,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
       }
     }
   }
@@ -193,7 +187,7 @@
   private static TimeThread INSTANCE = new TimeThread();
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/cli/ConsoleApplication.java b/opendj3-server-dev/src/server/org/opends/server/util/cli/ConsoleApplication.java
index 84c18fa..74fdc04 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/cli/ConsoleApplication.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/cli/ConsoleApplication.java
@@ -44,8 +44,9 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 import javax.naming.NamingException;
 import javax.naming.NoPermissionException;
@@ -59,7 +60,6 @@
 import org.opends.admin.ads.util.ApplicationTrustManager;
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.opends.admin.ads.util.OpendsCertificateException;
-import org.forgerock.i18n.LocalizableMessage;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.tools.ClientException;
@@ -749,7 +749,7 @@
    *          the Logger to be used to log the error message.
    * @return The string value read from the user.
    */
-  public String readInput(LocalizableMessage prompt, String defaultValue, Logger logger)
+  public String readInput(LocalizableMessage prompt, String defaultValue, LocalizedLogger logger)
   {
     String s = defaultValue;
     try
@@ -758,7 +758,7 @@
     }
     catch (CLIException ce)
     {
-      logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
     }
     return s;
   }
@@ -798,7 +798,7 @@
    *          the Logger to be used to log the error message.
    * @return Returns the password.
    */
-  protected final String readPassword(LocalizableMessage prompt, Logger logger)
+  protected final String readPassword(LocalizableMessage prompt, LocalizedLogger logger)
   {
     String pwd = null;
     try
@@ -807,7 +807,7 @@
     }
     catch (CLIException ce)
     {
-      logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
     }
     return pwd;
   }
@@ -897,7 +897,7 @@
    *          the logger where the errors will be written.
    * @return the port value provided by the user.
    */
-  protected int askPort(LocalizableMessage prompt, int defaultValue, Logger logger)
+  protected int askPort(LocalizableMessage prompt, int defaultValue, LocalizedLogger logger)
   {
     int port = -1;
     while (port == -1)
@@ -909,7 +909,7 @@
       catch (CLIException ce)
       {
         port = -1;
-        logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
       }
     }
     return port;
@@ -1002,7 +1002,7 @@
    *           of tries (ConsoleApplication.CONFIRMATION_MAX_TRIES)
    */
   protected final boolean askConfirmation(LocalizableMessage prompt, boolean defaultValue,
-      Logger logger) throws CLIException
+      LocalizedLogger logger) throws CLIException
   {
     boolean v = defaultValue;
 
@@ -1026,7 +1026,7 @@
         {
           throw ce;
         }
-        logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
         //      Try again...
         println();
       }
@@ -1346,7 +1346,7 @@
    *          the Logger to be used to log the error message.
    * @return the Global Administrator UID as provided by the user.
    */
-  protected String askForAdministratorUID(String defaultValue, Logger logger)
+  protected String askForAdministratorUID(String defaultValue, LocalizedLogger logger)
   {
     String s = defaultValue;
     try
@@ -1355,7 +1355,7 @@
     }
     catch (CLIException ce)
     {
-      logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+      logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
     }
     return s;
   }
@@ -1367,7 +1367,7 @@
    *          the Logger to be used to log the error message.
    * @return the Global Administrator password as provided by the user.
    */
-  protected String askForAdministratorPwd(Logger logger)
+  protected String askForAdministratorPwd(LocalizedLogger logger)
   {
     String pwd = readPassword(INFO_ADMINISTRATOR_PWD_PROMPT.get(), logger);
     return pwd;
@@ -1399,7 +1399,7 @@
    *          the logger where the errors will be written.
    * @return the value provided by the user.
    */
-  protected int askInteger(LocalizableMessage prompt, int defaultValue, Logger logger)
+  protected int askInteger(LocalizableMessage prompt, int defaultValue, LocalizedLogger logger)
   {
     int newInt = -1;
     while (newInt == -1)
@@ -1411,7 +1411,7 @@
       catch (CLIException ce)
       {
         newInt = -1;
-        logger.log(Level.WARNING, "Error reading input: " + ce, ce);
+        logger.warn(LocalizableMessage.raw("Error reading input: " + ce, ce));
       }
     }
     return newInt;
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java b/opendj3-server-dev/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
index e9516b1..49e881f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
@@ -59,8 +59,8 @@
 import java.security.cert.X509Certificate;
 import java.util.Enumeration;
 import java.util.LinkedHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 
 /**
  * Supports interacting with a user through the command line to
@@ -1765,7 +1765,7 @@
   */
  public boolean promptForCertificateConfirmation(Throwable t,
      ApplicationTrustManager usedTrustManager, String usedUrl,
-     boolean displayErrorMessage, Logger logger)
+     boolean displayErrorMessage, LocalizedLogger logger)
  {
    boolean returnValue = false;
    ApplicationTrustManager.Cause cause;
@@ -1779,7 +1779,7 @@
    }
    if (logger != null)
    {
-     logger.log(Level.INFO, "Certificate exception cause: "+cause);
+     logger.debug(LocalizableMessage.raw("Certificate exception cause: "+cause));
    }
    UserDataCertificateException.Type excType = null;
    if (cause == ApplicationTrustManager.Cause.NOT_TRUSTED)
@@ -1812,7 +1812,7 @@
      {
        if (logger != null)
        {
-         logger.log(Level.WARNING, "Error parsing ldap url of ldap url.", t1);
+         logger.warn(LocalizableMessage.raw("Error parsing ldap url of ldap url.", t1));
        }
        h = INFO_NOT_AVAILABLE_LABEL.get().toString();
        p = -1;
@@ -1850,18 +1850,18 @@
      {
        if (chain == null)
        {
-         logger.log(Level.WARNING,
-         "The chain is null for the UserDataCertificateException");
+         logger.warn(LocalizableMessage.raw(
+         "The chain is null for the UserDataCertificateException"));
        }
        if (authType == null)
        {
-         logger.log(Level.WARNING,
-         "The auth type is null for the UserDataCertificateException");
+         logger.warn(LocalizableMessage.raw(
+         "The auth type is null for the UserDataCertificateException"));
        }
        if (host == null)
        {
-         logger.log(Level.WARNING,
-         "The host is null for the UserDataCertificateException");
+         logger.warn(LocalizableMessage.raw(
+         "The host is null for the UserDataCertificateException"));
        }
      }
      if (chain != null)
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
index 8ae2269..a260d31 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
@@ -35,7 +35,7 @@
 import org.opends.server.config.ConfigConstants;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.MultiDomainServerState;
 import org.opends.server.replication.plugin.MultimasterReplication;
@@ -53,7 +53,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.StartECLSessionMsg
 .ECLRequestType.*;
 import static org.opends.server.replication.protocol.StartECLSessionMsg
@@ -71,10 +70,7 @@
        implements PreOperationSearchOperation, PostOperationSearchOperation,
                   SearchEntrySearchOperation, SearchReferenceSearchOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The set of supported controls for this WE. */
   private static final Set<String> CHANGELOG_SUPPORTED_CONTROLS =
@@ -246,8 +242,8 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
+        if (logger.isTraceEnabled())
+          logger.traceException(de);
         setResponseData(de);
         break searchProcessing;
       }
@@ -259,8 +255,8 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
+        if (logger.isTraceEnabled())
+          logger.traceException(de);
         setResponseData(de);
         break searchProcessing;
       }
@@ -301,8 +297,8 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
+        if (logger.isTraceEnabled())
+          logger.traceException(de);
 
         setResponseData(de);
 
@@ -325,8 +321,8 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        if (logger.isTraceEnabled())
+          logger.traceException(e);
 
         setResultCode(DirectoryServer.getServerErrorResultCode());
         appendErrorMessage(ERR_SEARCH_BACKEND_EXCEPTION.get(
@@ -421,10 +417,7 @@
             }
             catch (DirectoryException de)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
 
               throw new DirectoryException(de.getResultCode(),
                   ERR_SEARCH_CANNOT_GET_ENTRY_FOR_ASSERTION.get(
@@ -450,10 +443,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                 ERR_SEARCH_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -581,9 +571,9 @@
   private void processSearch(StartECLSessionMsg startECLSessionMsg)
       throws DirectoryException, CanceledOperationException
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(" processSearch toString=[" + toString() + "] opid=["
+      logger.trace(" processSearch toString=[" + toString() + "] opid=["
           + startECLSessionMsg.getOperationId() + "]");
     }
 
@@ -755,7 +745,7 @@
       catch (Exception e)
       {
         // Unable to decode the message - log an error.
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
 
         logError(LocalizableMessage.raw("An exception was encountered while try to encode a "
                 + "replication add message for entry \""
@@ -813,7 +803,7 @@
       catch (Exception e)
       {
         // Unable to decode the message - log an error.
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+        logger.traceException(e);
 
         logError(LocalizableMessage.raw("An exception was encountered while try to encode a "
                 + "replication modify message for entry \""
@@ -1070,8 +1060,8 @@
   @Override
   public CancelResult cancel(CancelRequest cancelRequest)
   {
-    if (debugEnabled())
-      TRACER.debugInfo(this + " cancel() " + eclServerHandler);
+    if (logger.isTraceEnabled())
+      logger.trace(this + " cancel() " + eclServerHandler);
     shutdownECLServerHandler();
     return super.cancel(cancelRequest);
   }
@@ -1080,8 +1070,8 @@
   @Override
   public void abort(CancelRequest cancelRequest)
   {
-    if (debugEnabled())
-      TRACER.debugInfo(this + " abort() " + eclServerHandler);
+    if (logger.isTraceEnabled())
+      logger.trace(this + " abort() " + eclServerHandler);
     shutdownECLServerHandler();
   }
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java
index 1f091e1..1d164e2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java
@@ -22,14 +22,12 @@
  *
  *
  *      Copyright 2009 Sun Microsystems, Inc.
- *      Portions Copyright 2012 ForgeRock AS
+ *      Portions Copyright 2012-2014 ForgeRock AS
  */
 package org.opends.server.workflowelement.externalchangelog;
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.getTracer;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -38,7 +36,7 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PersistentSearch;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.types.CanceledOperationException;
 import org.opends.server.types.DirectoryException;
@@ -55,10 +53,7 @@
 public class ECLWorkflowElement extends
     LeafWorkflowElement<WorkflowElementCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    *The set of persistent searches registered with this work flow element.
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 0d612ba..12df079 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -29,7 +29,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -45,7 +44,7 @@
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.AuthPasswordSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.*;
@@ -65,10 +64,7 @@
        implements PreOperationAddOperation, PostOperationAddOperation,
                   PostResponseAddOperation, PostSynchronizationAddOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The backend in which the entry is to be added.
@@ -222,10 +218,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               logError(ERR_ADD_ERROR_NOTIFYING_CHANGE_LISTENER
                   .get(getExceptionMessage(e)));
@@ -529,10 +522,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
     }
@@ -547,10 +537,7 @@
         }
         catch (DirectoryException de)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, de);
-          }
+          logger.traceException(de);
 
           logError(ERR_ADD_SYNCH_POSTOP_FAILED.get(getConnectionID(),
               getOperationID(), getExceptionMessage(de)));
@@ -588,10 +575,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -1158,10 +1142,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entryDN, de.getResultCode(),
                 ERR_ADD_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -1195,10 +1176,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entryDN, de.getResultCode(),
                 ERR_ADD_CANNOT_PROCESS_ASSERTION_FILTER.get(
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java
index 51aae4b..71b0f14 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java
@@ -40,7 +40,7 @@
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.types.operation.PostOperationBindOperation;
@@ -50,7 +50,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -63,10 +62,7 @@
        implements PreOperationBindOperation, PostOperationBindOperation,
                   PostResponseBindOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The backend in which the bind operation should be processed.
@@ -204,10 +200,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
     }
@@ -334,10 +327,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
       return;
@@ -365,10 +355,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       if (de.getResultCode() == ResultCode.INVALID_CREDENTIALS)
       {
@@ -470,10 +457,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         userEntry = null;
 
@@ -1163,10 +1147,7 @@
         }
         catch (Exception e)
         {
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-          }
+          logger.traceException(e);
 
           logError(cannotProcessAttributeMessage.get(v.getValue().toString(),
               String.valueOf(userEntry.getName())));
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
index 131f9ee..89cf55a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
@@ -38,14 +38,13 @@
 import org.opends.server.controls.ProxiedAuthV1Control;
 import org.opends.server.controls.ProxiedAuthV2Control;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostOperationCompareOperation;
 import org.opends.server.types.operation.PostResponseCompareOperation;
 import org.opends.server.types.operation.PreOperationCompareOperation;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -58,10 +57,7 @@
        implements PreOperationCompareOperation, PostOperationCompareOperation,
                   PostResponseCompareOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -217,10 +213,7 @@
       }
       catch (DirectoryException de)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
+        logger.traceException(de);
 
         setResultCodeAndMessageNoInfoDisclosure(entry, entryDN,
             de.getResultCode(), de.getMessageObject());
@@ -327,10 +320,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
     }
@@ -376,10 +366,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -413,10 +400,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entry, de.getResultCode(),
                            ERR_COMPARE_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -450,10 +434,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entry, de.getResultCode(),
                            ERR_COMPARE_CANNOT_PROCESS_ASSERTION_FILTER.get(
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index 3644f00..c7e0361 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -28,7 +28,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -46,7 +45,7 @@
 import org.opends.server.controls.ProxiedAuthV1Control;
 import org.opends.server.controls.ProxiedAuthV2Control;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostOperationDeleteOperation;
 import org.opends.server.types.operation.PostResponseDeleteOperation;
@@ -63,10 +62,7 @@
                   PostResponseDeleteOperation,
                   PostSynchronizationDeleteOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -207,10 +203,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message =
                   ERR_DELETE_ERROR_NOTIFYING_CHANGE_LISTENER
@@ -375,10 +368,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
     }
@@ -426,10 +416,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -462,10 +449,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entry, de.getResultCode(),
                            ERR_DELETE_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -498,10 +482,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(entry, de.getResultCode(),
                            ERR_DELETE_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -607,9 +588,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_DELETE_SYNCH_CONFLICT_RESOLUTION_FAILED.get(
                       getConnectionID(), getOperationID(),
                       getExceptionMessage(de)));
@@ -629,10 +608,7 @@
           try {
               provider.doPostOperation(this);
           } catch (DirectoryException de) {
-              if (debugEnabled())
-              {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_DELETE_SYNCH_POSTOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
@@ -660,10 +636,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled())
-              {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_DELETE_SYNCH_PREOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
index 2ee635d..0ebb0b0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -39,7 +39,7 @@
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostOperationModifyDNOperation;
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
@@ -48,7 +48,6 @@
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -63,10 +62,7 @@
              PostResponseModifyDNOperation,
              PostSynchronizationModifyDNOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -239,10 +235,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message =
                   ERR_MODDN_ERROR_NOTIFYING_CHANGE_LISTENER
@@ -359,10 +352,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         setResultCodeAndMessageNoInfoDisclosure(null, newDN,
             DirectoryServer.getServerErrorResultCode(),
@@ -515,10 +505,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
       return;
@@ -570,10 +557,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -608,10 +592,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(currentEntry, de.getResultCode(),
                 ERR_MODDN_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -646,10 +627,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(currentEntry, de.getResultCode(),
                 ERR_MODDN_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -946,9 +924,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODDN_SYNCH_CONFLICT_RESOLUTION_FAILED.get(
                       getConnectionID(), getOperationID(),
                       getExceptionMessage(de)));
@@ -980,9 +956,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODDN_SYNCH_PREOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
@@ -1002,9 +976,7 @@
           try {
               provider.doPostOperation(this);
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODDN_SYNCH_POSTOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index d0a7196..e28a6c6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -29,7 +29,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -44,7 +43,7 @@
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.schema.AuthPasswordSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.*;
@@ -65,10 +64,7 @@
                   PostResponseModifyOperation,
                   PostSynchronizationModifyOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * The backend in which the target entry exists.
@@ -366,10 +362,7 @@
             }
             catch (Exception e)
             {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
+              logger.traceException(e);
 
               LocalizableMessage message = ERR_MODIFY_ERROR_NOTIFYING_CHANGE_LISTENER
                   .get(getExceptionMessage(e));
@@ -619,10 +612,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
     }
@@ -669,10 +659,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
     }
     return null;
   }
@@ -707,10 +694,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(currentEntry, de.getResultCode(),
                            ERR_MODIFY_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -744,10 +728,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw newDirectoryException(currentEntry, de.getResultCode(),
                            ERR_MODIFY_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -1516,10 +1497,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         lowerName = toLowerCase(v.getValue().toString());
       }
@@ -1753,10 +1731,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
           ERR_MODIFY_INCREMENT_PROVIDED_VALUE_NOT_INTEGER.get(String
@@ -1785,10 +1760,7 @@
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, e);
-        }
+        logger.traceException(e);
 
         throw new DirectoryException(
             ResultCode.INVALID_ATTRIBUTE_SYNTAX,
@@ -2090,9 +2062,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODIFY_SYNCH_CONFLICT_RESOLUTION_FAILED.get(
                       getConnectionID(), getOperationID(),
                       getExceptionMessage(de)));
@@ -2122,9 +2092,7 @@
                   return false;
               }
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODIFY_SYNCH_PREOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
@@ -2143,9 +2111,7 @@
           try {
               provider.doPostOperation(this);
           } catch (DirectoryException de) {
-              if (debugEnabled()) {
-                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
-              }
+              logger.traceException(de);
               logError(ERR_MODIFY_SYNCH_POSTOP_FAILED.get(getConnectionID(),
                       getOperationID(), getExceptionMessage(de)));
               setResponseData(de);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
index 368f29e..db347b0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
@@ -33,7 +33,7 @@
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.controls.*;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.types.operation.PostOperationSearchOperation;
 import org.opends.server.types.operation.PreOperationSearchOperation;
@@ -41,7 +41,6 @@
 import org.opends.server.types.operation.SearchReferenceSearchOperation;
 
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -54,10 +53,7 @@
        implements PreOperationSearchOperation, PostOperationSearchOperation,
                   SearchEntrySearchOperation, SearchReferenceSearchOperation
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
 
 
@@ -179,10 +175,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       setResponseData(de);
       return;
@@ -279,9 +272,9 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
+      if (logger.isTraceEnabled())
       {
-        TRACER.debugCaught(DebugLogLevel.VERBOSE, de);
+        logger.traceException(de);
       }
 
       setResponseData(de);
@@ -306,10 +299,7 @@
     }
     catch (Exception e)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, e);
-      }
+      logger.traceException(e);
 
       setResultCode(DirectoryServer.getServerErrorResultCode());
       appendErrorMessage(ERR_SEARCH_BACKEND_EXCEPTION
@@ -354,10 +344,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw new DirectoryException(de.getResultCode(),
                            ERR_SEARCH_CANNOT_PROCESS_ASSERTION_FILTER.get(
@@ -371,10 +358,7 @@
           }
           catch (DirectoryException de)
           {
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw new DirectoryException(de.getResultCode(),
                            ERR_SEARCH_CANNOT_GET_ENTRY_FOR_ASSERTION.get(
@@ -411,10 +395,7 @@
               throw de;
             }
 
-            if (debugEnabled())
-            {
-              TRACER.debugCaught(DebugLogLevel.ERROR, de);
-            }
+            logger.traceException(de);
 
             throw new DirectoryException(de.getResultCode(),
                            ERR_SEARCH_CANNOT_PROCESS_ASSERTION_FILTER.get(
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
index 2b32fd8..b43e3d3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
@@ -46,13 +46,12 @@
 import org.opends.server.controls.LDAPPreReadRequestControl;
 import org.opends.server.controls.LDAPPreReadResponseControl;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
 import org.opends.server.workflowelement.LeafWorkflowElement;
 
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 
 /**
  * This class defines a local backend workflow element; e-g an entity that
@@ -62,10 +61,7 @@
     LeafWorkflowElement<LocalBackendWorkflowElementCfg>
     implements ConfigurationChangeListener<LocalBackendWorkflowElementCfg>
 {
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** the backend associated with the local workflow element. */
   private Backend backend;
@@ -502,10 +498,7 @@
     }
     catch (DirectoryException de)
     {
-      if (debugEnabled())
-      {
-        TRACER.debugCaught(DebugLogLevel.ERROR, de);
-      }
+      logger.traceException(de);
 
       operation.setResponseData(de);
       // At this point it is impossible to tell whether the matchedDN can be
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index 877ee57..d1c35ce 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -31,13 +31,11 @@
 import java.util.*;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.backends.MemoryBackend;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.replication.common.CSNGenerator;
 import org.opends.server.replication.common.ServerStatus;
@@ -56,7 +54,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.testng.Assert.*;
 
@@ -73,7 +70,7 @@
 public class GenerationIdTest extends ReplicationTestCase
 {
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final String baseDnStr = TEST_ROOT_DN_STRING;
   private static final String testName = "generationIdTest";
@@ -142,9 +139,9 @@
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw("** TEST **" + s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
@@ -581,7 +578,7 @@
   public void testSingleRS() throws Exception
   {
     String testCase = "testSingleRS";
-    debugInfo("Starting "+ testCase + " debugEnabled:" + debugEnabled());
+    debugInfo("Starting "+ testCase + " debugEnabled:" + logger.isTraceEnabled());
 
     debugInfo(testCase + " Clearing DS1 backend");
     // Special test were we want to test with an empty backend. So free it
@@ -1058,7 +1055,7 @@
   public void testServerStop() throws Exception
   {
     String testCase = "testServerStop";
-    debugInfo("Starting "+ testCase + " debugEnabled:" + debugEnabled());
+    debugInfo("Starting "+ testCase + " debugEnabled:" + logger.isTraceEnabled());
 
     debugInfo(testCase + " Clearing DS1 backend");
     // Special test were we want to test with an empty backend. So free it
@@ -1099,7 +1096,7 @@
   public void testLoop() throws Exception
   {
     String testCase = "testLoop";
-    debugInfo("Starting "+ testCase + " debugEnabled:" + debugEnabled());
+    debugInfo("Starting "+ testCase + " debugEnabled:" + logger.isTraceEnabled());
     long rsGenId;
 
     // Special test were we want to test with an empty backend. So free it
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
index 3c46b46..322dad1 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
@@ -29,14 +29,12 @@
 import java.util.*;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.backends.task.TaskState;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.replication.common.ServerStatus;
@@ -58,7 +56,6 @@
 import static org.opends.server.backends.task.TaskState.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.testng.Assert.*;
 
@@ -88,7 +85,7 @@
   /**
    * The tracer object for the debug logger
    */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private static final int WINDOW_SIZE = 10;
 
   private Entry taskInitFromS2;
@@ -118,9 +115,9 @@
   private void log(String s)
   {
     logError(LocalizableMessage.raw("InitOnLineTests/" + s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(s);
+      logger.trace(s);
     }
   }
 
@@ -133,7 +130,7 @@
   {
     super.setUp();
 
-    log("Setup: debugEnabled:" + debugEnabled());
+    log("Setup: debugEnabled:" + logger.isTraceEnabled());
 
     // This test suite depends on having the schema available.
     baseDN = DN.valueOf(EXAMPLE_DN);
@@ -751,7 +748,7 @@
   public void initializeTargetImport() throws Exception
   {
     String testCase = "initializeTargetImport";
-    log("Starting " + testCase + " debugEnabled:" + debugEnabled());
+    log("Starting " + testCase + " debugEnabled:" + logger.isTraceEnabled());
     try
     {
       replServer1 = createReplicationServer(replServer1ID, testCase);
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
index d7692ba..791b855 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
@@ -31,9 +31,7 @@
 import java.util.NoSuchElementException;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReSyncTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReSyncTest.java
index 98fbc1b..47c9a7c 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReSyncTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReSyncTest.java
@@ -29,12 +29,10 @@
 import java.io.File;
 import java.util.UUID;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.core.AddOperation;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.ResultCode;
@@ -43,7 +41,6 @@
 import org.testng.annotations.Test;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -53,14 +50,14 @@
 public class ReSyncTest extends ReplicationTestCase
 {
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo(s);
+      logger.trace(s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
index 2f2cdb6..50e90ef 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
@@ -30,9 +30,7 @@
 import java.util.concurrent.locks.Lock;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.DirectoryServerTestCase;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.ReplicationDomainCfg;
@@ -41,7 +39,7 @@
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.replication.common.ServerState;
@@ -61,7 +59,6 @@
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.schema.DirectoryStringSyntax.*;
 import static org.opends.server.types.ResultCode.*;
 import static org.opends.server.types.SearchScope.*;
@@ -76,7 +73,7 @@
 {
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /**
    * This is the generation id matching the memory test backend with its initial
@@ -252,7 +249,7 @@
     {
       if (rb.isConnected())
       {
-        TRACER.debugInfo("checkConnection: connection of broker "
+        logger.trace("checkConnection: connection of broker "
           + rb.getServerId() + " to RS " + rb.getRsGroupId()
           + " obtained after " + nSec + " seconds.");
         return;
@@ -701,7 +698,7 @@
   protected void addTask(Entry taskEntry, ResultCode expectedResult,
       LocalizableMessage errorMessage) throws Exception
   {
-    TRACER.debugInfo("AddTask/" + taskEntry);
+    logger.trace("AddTask/" + taskEntry);
 
     // Change config of DS to launch the total update task
     AddOperation addOperation = connection.processAdd(taskEntry);
@@ -715,7 +712,7 @@
     {
       Assertions.assertThat(addOperation.getErrorMessage().toString())
           .startsWith(errorMessage.toString());
-      TRACER.debugInfo("Create config task: <"
+      logger.trace("Create config task: <"
           + errorMessage.resourceName() + "-" + errorMessage.ordinal()
           + addOperation.getErrorMessage() + ">");
     }
@@ -727,7 +724,7 @@
     // Entry will be removed at the end of the test
     entriesToCleanup.add(taskEntry.getName());
 
-    TRACER.debugInfo("AddedTask/" + taskEntry.getName());
+    logger.trace("AddedTask/" + taskEntry.getName());
   }
 
   protected void waitTaskState(Entry taskEntry, TaskState expectedTaskState,
@@ -771,10 +768,10 @@
     }
     if (logMessages.size() != 0)
     {
-      TRACER.debugInfo(logMessages.get(0));
+      logger.trace(logMessages.get(0));
       if (expectedMessage != null)
       {
-        TRACER.debugInfo(expectedMessage.toString());
+        logger.trace(expectedMessage.toString());
         assertTrue(logMessages.get(0).indexOf(expectedMessage.toString()) > 0);
       }
     }
@@ -804,12 +801,12 @@
       AddOperation addOp = connection.processAdd(entry);
       if (addOp.getResultCode() != ResultCode.SUCCESS)
       {
-        TRACER.debugInfo("Failed to add entry " + entry.getName()
+        logger.trace("Failed to add entry " + entry.getName()
             + "Result code = : " + addOp.getResultCode());
       }
       else
       {
-        TRACER.debugInfo(entry.getName() + " added " + addOp.getResultCode());
+        logger.trace(entry.getName() + " added " + addOp.getResultCode());
       }
     }
   }
@@ -923,7 +920,7 @@
         // Ok, got it, let's return the expected message
         return (T) replMsg;
       }
-      TRACER.debugInfo("waitForSpecificMsg received : " + replMsg);
+      logger.trace("waitForSpecificMsg received : " + replMsg);
       msgs.add(replMsg);
       timedOut = (System.currentTimeMillis() - startTime) > timeOut;
     }
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/SchemaReplicationTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/SchemaReplicationTest.java
index a76f477..6e9a115 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/SchemaReplicationTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/SchemaReplicationTest.java
@@ -32,9 +32,7 @@
 import java.util.List;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.SynchronizationProviderCfg;
 import org.opends.server.api.SynchronizationProvider;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java
index 8d366eb..7cf85dd 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java
@@ -30,9 +30,7 @@
 import java.util.List;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.MonitorProvider;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/UpdateOperationTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/UpdateOperationTest.java
index e18f859..b1af75c 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/UpdateOperationTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/UpdateOperationTest.java
@@ -32,9 +32,7 @@
 import java.util.List;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java
index 10064a5..7e11a4a 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java
@@ -35,14 +35,12 @@
 
 import org.assertj.core.api.Assertions;
 import org.assertj.core.data.MapEntry;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.*;
@@ -55,7 +53,6 @@
 import static org.assertj.core.data.MapEntry.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -134,14 +131,14 @@
   private static final int NO_READ = 6;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
index 67daa29..47cfd51 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
@@ -33,13 +33,11 @@
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.CSNGenerator;
 import org.opends.server.replication.common.ServerStatus;
@@ -58,7 +56,6 @@
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -90,7 +87,7 @@
   private CSNGenerator gen;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** Number of seconds before generating an error if some conditions not met */
   private static final int TIMEOUT = 10000;
@@ -127,9 +124,9 @@
 
   private void debugInfo(String s) {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/GroupIdHandshakeTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/GroupIdHandshakeTest.java
index 08380dd..7a12a96 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/GroupIdHandshakeTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/GroupIdHandshakeTest.java
@@ -30,11 +30,9 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.server.ReplServerFakeConfiguration;
 import org.opends.server.replication.server.ReplicationServer;
@@ -44,7 +42,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -68,14 +65,14 @@
   private ReplicationServer rs3 = null;
 
   // The tracer object for the debug logger
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
index 636eb9f..7fd8fae 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
@@ -33,9 +33,7 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.meta.ReplicationDomainCfgDefn.AssuredType;
 import org.opends.server.config.ConfigException;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerFailoverTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerFailoverTest.java
index fe99ffe..83c0235 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerFailoverTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerFailoverTest.java
@@ -30,12 +30,10 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.server.ReplServerFakeConfiguration;
 import org.opends.server.replication.server.ReplicationServer;
@@ -45,7 +43,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -67,14 +64,14 @@
   private ReplicationServer rs2 = null;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("*** TEST *** " + s);
+      logger.trace("*** TEST *** " + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
index e116d6a..83f2d11 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
@@ -29,12 +29,10 @@
 import java.util.*;
 
 import org.assertj.core.api.Assertions;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.ReplicationServerCfg;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.server.ReplServerFakeConfiguration;
 import org.opends.server.replication.server.ReplicationServer;
@@ -44,7 +42,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -67,14 +64,14 @@
   private static final int RS3_ID = 503;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
index e120783..daec47c 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
@@ -34,15 +34,13 @@
 import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.SynchronizationProviderCfg;
 import org.opends.server.api.SynchronizationProvider;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.CSNGenerator;
 import org.opends.server.replication.common.DSInfo;
@@ -62,7 +60,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -86,15 +83,15 @@
   private ReplicationBroker ds3;
   private ReplicationServer rs1;
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private int initWindow = 100;
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/TopologyViewTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/TopologyViewTest.java
index 856a857..29e6497 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/TopologyViewTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/TopologyViewTest.java
@@ -30,13 +30,11 @@
 import java.net.UnknownHostException;
 import java.util.*;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.meta.ReplicationDomainCfgDefn.AssuredType;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.AssuredMode;
 import org.opends.server.replication.common.DSInfo;
@@ -51,7 +49,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -141,14 +138,14 @@
   private ReplicationServer rs3 = null;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
index 7f5d762..87f9405 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
@@ -34,14 +34,12 @@
 import java.util.*;
 import java.util.concurrent.TimeoutException;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.meta.ReplicationDomainCfgDefn.AssuredType;
 import org.opends.server.admin.std.server.ReplicationDomainCfg;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.plugin.DomainFakeCfg;
@@ -61,7 +59,6 @@
 import static org.assertj.core.api.Assertions.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -75,7 +72,7 @@
 
   private String testName = this.getClass().getSimpleName();
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private int[] rsPorts;
   private static final int FDS1_ID = 1;
   private static final int FDS2_ID = 2;
@@ -179,9 +176,9 @@
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
index b7ad046..ebce0bc 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
@@ -43,7 +43,7 @@
 import org.opends.server.controls.PersistentSearchChangeType;
 import org.opends.server.controls.PersistentSearchControl;
 import org.opends.server.core.*;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.plugins.InvocationCounterPlugin;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.*;
@@ -74,7 +74,6 @@
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.controls.PersistentSearchChangeType.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.OperationContext.*;
 import static org.opends.server.types.ResultCode.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -91,7 +90,7 @@
   private static final int SERVER_ID_2 = 1202;
 
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The replicationServer that will be used in this test. */
   private ReplicationServer replicationServer;
@@ -1977,9 +1976,9 @@
    */
   private void debugInfo(String testName, String message)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST " + testName + " ** " + message);
+      logger.trace("** TEST " + testName + " ** " + message);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java
index 89dad14..f3329cd 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java
@@ -30,11 +30,9 @@
 import java.net.SocketException;
 import java.util.*;
 
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.CSNGenerator;
@@ -51,7 +49,6 @@
 
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -61,7 +58,7 @@
 public class MonitorTest extends ReplicationTestCase
 {
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   private static final String baseDnStr = TEST_ROOT_DN_STRING;
   private static final String testName = "monitorTest";
@@ -89,9 +86,9 @@
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
index 333386a..adcae9d 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
@@ -38,7 +38,7 @@
 import org.opends.server.api.SynchronizationProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyDNOperationBasis;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
 import org.opends.server.replication.ReplicationTestCase;
@@ -64,7 +64,6 @@
 import static java.util.Collections.*;
 
 import static org.opends.server.TestCaseUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.protocol.OperationContext.*;
 import static org.opends.server.types.ResultCode.*;
 import static org.opends.server.types.SearchScope.*;
@@ -79,7 +78,7 @@
 public class ReplicationServerTest extends ReplicationTestCase
 {
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private DN TEST_ROOT_DN;
   private DN EXAMPLE_DN;
   /** The replicationServer that will be used in this test. */
@@ -151,9 +150,9 @@
   private void debugInfo(String s)
   {
     //ErrorLogger.logError(LocalizableMessage.raw("** TEST ** " + s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST ** " + s);
+      logger.trace("** TEST ** " + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java
index 71d6791..c746b8b 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java
@@ -32,7 +32,7 @@
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.ReplicationServerCfg;
 import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.CSNGenerator;
@@ -47,7 +47,6 @@
 import org.testng.annotations.Test;
 
 import static org.opends.server.TestCaseUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.testng.Assert.*;
 
 /**
@@ -57,7 +56,7 @@
 public class JEReplicaDBTest extends ReplicationTestCase
 {
   /** The tracer object for the debug logger */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
   private DN TEST_ROOT_DN;
 
   /**
@@ -66,9 +65,9 @@
    */
   private void debugInfo(String tn, String s)
   {
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST " + tn + " ** " + s);
+      logger.trace("** TEST " + tn + " ** " + s);
     }
   }
 
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ComputeBestServerTest.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ComputeBestServerTest.java
index b4729b8..e9fd21a 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ComputeBestServerTest.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ComputeBestServerTest.java
@@ -31,11 +31,8 @@
 
 import org.assertj.core.api.Assertions;
 import org.assertj.core.data.MapEntry;
-import org.opends.messages.Category;
 import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.LocalizableMessageDescriptor;
-import org.opends.messages.Severity;
-import org.opends.server.loggers.debug.DebugTracer;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.RSInfo;
@@ -44,7 +41,6 @@
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.service.ReplicationBroker.RSEvaluations;
 import org.opends.server.replication.service.ReplicationBroker.ReplicationServerInfo;
-import org.opends.server.util.StaticUtils;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
@@ -54,7 +50,6 @@
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.replication.service.ReplicationBroker.*;
 import static org.testng.Assert.*;
 
@@ -67,7 +62,7 @@
 {
 
   /** The tracer object for the debug logger. */
-  private static final DebugTracer TRACER = getTracer();
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // definitions for server ids
   private static final int myId1 = 1;
@@ -82,9 +77,9 @@
   private void debugInfo(String s)
   {
     logError(LocalizableMessage.raw(s));
-    if (debugEnabled())
+    if (logger.isTraceEnabled())
     {
-      TRACER.debugInfo("** TEST **" + s);
+      logger.trace("** TEST **" + s);
     }
   }
 

--
Gitblit v1.10.0