From acee9ea190e753f832be588eb384522a6d65ed84 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Tue, 22 May 2007 23:30:15 +0000
Subject: [PATCH] Remove the dependence on AspectJ for all non method-entry and method-exit related debug messages. All debug statements will now work w/o  weaving enabled. However, method-entry and method-exit debug messages work only with weaving enabled.

---
 opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java                     |   13 
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java                                            |   24 
 opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java                               |   13 
 opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java                    |   37 
 opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java                     |   11 
 opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java                                   |   57 
 opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java                                |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java                                  |   12 
 opendj-sdk/opends/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java                  |   12 
 opendj-sdk/opends/src/server/org/opends/server/extensions/VirtualStaticGroup.java                               |    8 
 opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java                                      |   29 
 opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java                                         |   10 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java                                |    6 
 opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java                                          |  105 
 opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java                        |   23 
 opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java                                           |    6 
 opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java                                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java                               |   13 
 opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java                                              |    8 
 opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java                                           |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java                                       |   19 
 opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java                                   |   53 
 opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java                               |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java        |   11 
 opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java                             |   18 
 opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java                             |   24 
 opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java                                   |   43 
 opendj-sdk/opends/src/server/org/opends/server/types/RDN.java                                                   |   22 
 opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java                                   |  268 -
 opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java                 |   17 
 opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java                         |  171 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java                                 |   85 
 opendj-sdk/opends/src/server/org/opends/server/config/IntegerConfigAttribute.java                               |   19 
 opendj-sdk/opends/src/server/org/opends/server/types/Schema.java                                                |    8 
 opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java                                  |   11 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java                             |   57 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java              |   10 
 opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskBackend.java                                   |   25 
 opendj-sdk/opends/src/server/org/opends/server/controls/AccountUsableResponseControl.java                       |   13 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java                        |   17 
 opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java                                       |    8 
 opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java                                       |   63 
 opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java                  |   13 
 opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java                                   |   23 
 opendj-sdk/opends/src/server/org/opends/server/api/VirtualAttributeProvider.java                                |   26 
 opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java                                     |   30 
 opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java                      |   75 
 opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java                                    |   15 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java          |   11 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexMergeThread.java                               |   13 
 opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/MemoryBackend.java                                      |   19 
 opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java                                 |   51 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java                           |   12 
 opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java                                        |  158 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java                   |   20 
 opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java                                         |   33 
 opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java                            |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java |   11 
 opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java               |   16 
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java                                        |   18 
 opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java                                       |   29 
 opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java                        |   16 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ID2Entry.java                                       |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java                                  |   18 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java                     |   16 
 opendj-sdk/opends/src/server/org/opends/server/extensions/DynamicGroup.java                                     |    8 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java                                          |   23 
 opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java                        |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java               |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java                                |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java                                         |   17 
 opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java                                        |   45 
 opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java                  |   35 
 opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java                         |   21 
 opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugAspect.java                                   |  289 +
 opendj-sdk/opends/src/server/org/opends/server/controls/LDAPAssertionRequestControl.java                        |   11 
 opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java                                   |   17 
 opendj-sdk/opends/src/server/org/opends/server/config/ConfigEntry.java                                          |   13 
 opendj-sdk/opends/src/server/org/opends/server/config/StringConfigAttribute.java                                |   13 
 opendj-sdk/opends/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/JebFormat.java                                      |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java               |   16 
 opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java                                        |    8 
 opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java                                      |   18 
 opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java                         |   13 
 opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java                     |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java                                |  104 
 opendj-sdk/opends/src/server/org/opends/server/types/Entry.java                                                 |   46 
 opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java                                |    8 
 opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java                   |   17 
 opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java                                    |   29 
 opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java                                         |    8 
 opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesControl.java                               |   13 
 opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java                  |   13 
 opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java                          |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/VirtualAttributeRule.java                                  |   10 
 opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java                                      |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java                              |   13 
 opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java                       |   21 
 opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java                          |   13 
 opendj-sdk/opends/src/server/org/opends/server/types/SortKey.java                                               |   10 
 opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java                         |   25 
 opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java                                          |   16 
 opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java                    |   12 
 opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java                         |   19 
 opendj-sdk/opends/src/server/org/opends/server/backends/RootDSEBackend.java                                     |   27 
 opendj-sdk/opends/src/server/org/opends/server/controls/GetEffectiveRights.java                                 |   13 
 opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java                   |   17 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java                         |   73 
 opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java                          |   16 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SubschemaSubentryVirtualAttributeProvider.java        |    6 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportJob.java                                      |   21 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java                      |    8 
 opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java                          |   27 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java                      |   12 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java                    |   16 
 opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java                            |   13 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java                     |   11 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportThread.java                                   |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java                                        |   26 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java                    |   16 
 opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java                           |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java               |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/AciSyntax.java                                            |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java                                |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/RawAttribute.java                                          |   12 
 opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java                 |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2ID.java                                          |   19 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java                           |   35 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java                                 |   21 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SubstringIndexer.java                               |   11 
 opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciHandler.java                         |   11 
 opendj-sdk/opends/src/server/org/opends/server/api/EqualityMatchingRule.java                                    |   10 
 opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java                                           |   51 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java                                    |   77 
 opendj-sdk/opends/src/server/org/opends/server/config/DNConfigAttribute.java                                    |   25 
 opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java                             |   15 
 opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java                                       |   14 
 opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java                         |   13 
 opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java                                             |   11 
 opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java                                              |    8 
 opendj-sdk/opends/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java                         |   13 
 opendj-sdk/opends/src/server/org/opends/server/controls/EntryChangeNotificationControl.java                     |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java                   |   12 
 opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java                                  |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java                      |    8 
 opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java                                             |   26 
 opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java                          |   14 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java                            |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java                                      |  168 
 opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java                |   13 
 opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java                                            |   21 
 opendj-sdk/opends/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java                           |   13 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java                               |   43 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java                                  |   43 
 opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java                                      |   12 
 opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java                    |   11 
 opendj-sdk/opends/src/server/org/opends/server/util/Validator.java                                              |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java                   |   16 
 opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java                                      |   57 
 opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java                                 |   30 
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java                                            |   35 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RootContainer.java                                  |   30 
 opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java                                 |   11 
 opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java                                           |   15 
 opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java                        |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java                    |   12 
 opendj-sdk/opends/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java                       |   12 
 opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java                               |   11 
 opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java                                      |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java                |   23 
 opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java                                       |   15 
 opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java                     |   11 
 opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java                             |   13 
 opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java                                  |   17 
 opendj-sdk/opends/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java                      |    8 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java                        |   29 
 opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java                                    |   11 
 opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java                                      |   14 
 opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java                             |   11 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackupManager.java                                  |   57 
 opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java                                       |   30 
 opendj-sdk/opends/src/server/org/opends/server/admin/ClassLoaderProvider.java                                   |   26 
 opendj-sdk/opends/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java                       |   13 
 opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java                                          |   31 
 opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java                                        |   66 
 opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java                    |   71 
 opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java                            |   11 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RebuildJob.java                                     |   33 
 opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java                                            |   27 
 opendj-sdk/opends/src/server/org/opends/server/types/RawFilter.java                                             |   45 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java                  |   23 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java                      |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java                                |   25 
 opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTask.java                                        |   15 
 opendj-sdk/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java                            |   18 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ExportJob.java                                      |   18 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2URI.java                                         |   31 
 opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java                         |   45 
 opendj-sdk/opends/src/server/org/opends/server/tasks/RebuildTask.java                                           |   15 
 opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java                                   |   13 
 opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java                                        |   16 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java                              |   20 
 opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java                      |   11 
 opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugTracer.java                                   | 1665 +++++----
 opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java                                      |    8 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java                |   23 
 opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java                             |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Config.java                                         |   11 
 opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java                                           |   15 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EnvManager.java                                     |   13 
 opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java                      |   43 
 opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java                                             |   11 
 opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java                                         |   12 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java                  |   12 
 opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java                                |   15 
 opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java                     |   15 
 opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java                                             |   10 
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java                                            |   23 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/OrderingIndexer.java                                |   11 
 opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java                         |   11 
 opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java                        |   43 
 opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java                                        |   15 
 opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java                                    |  105 
 opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java                                   |   13 
 opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java                                             |   64 
 opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java                          |   30 
 opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java                                       |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java                        |   19 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java                          |   35 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java                        |   16 
 opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java                                           |   53 
 opendj-sdk/opends/src/server/org/opends/server/types/DN.java                                                    |   18 
 opendj-sdk/opends/src/server/org/opends/server/replication/protocol/HeartbeatThread.java                        |   24 
 opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java                |   11 
 opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java                                     |   18 
 opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java                          |   11 
 opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java                                    |  379 +-
 opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java                                        |   13 
 opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java                             |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EqualityIndexer.java                                |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java                              |   13 
 opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java                                      |  133 
 opendj-sdk/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java                   |   12 
 opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java                                          |   15 
 opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java                      |   19 
 opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java                             |   11 
 opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesFilter.java                                |   37 
 opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java                                    |  103 
 opendj-sdk/opends/src/server/org/opends/server/config/JMXMBean.java                                             |   35 
 opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java                   |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java                     |   16 
 opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java                                 |   15 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java                         |   12 
 opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java                      |   13 
 opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java                                      |  100 
 opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java                          |   11 
 opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java                                  |   33 
 opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java                            |   10 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java                |   23 
 opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java                    |   23 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java                       |   22 
 opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java                                |   11 
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java                                           |   22 
 opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java                                |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java               |   16 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java                     |   16 
 opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTargetTask.java                                  |   11 
 opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java                      |   37 
 opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java                   |   23 
 opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java                          |   13 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java                      |   24 
 opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java                                           |    8 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java                            |   11 
 opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java            |   15 
 opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java                             |   38 
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java                             |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java                                   |   10 
 opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskThread.java                                    |   15 
 opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java                                        |   29 
 opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java                                            |   13 
 opendj-sdk/opends/src/server/org/opends/server/types/RawModification.java                                       |   12 
 opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HeartbeatMonitor.java                         |   19 
 opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java                          |   11 
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java                   |   16 
 opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java                                               |   18 
 opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java                 |   17 
 opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java                                        |   44 
 291 files changed, 5,535 insertions(+), 3,749 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/ClassLoaderProvider.java b/opendj-sdk/opends/src/server/org/opends/server/admin/ClassLoaderProvider.java
index 273edd8..21b56a4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/ClassLoaderProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/admin/ClassLoaderProvider.java
@@ -30,6 +30,7 @@
 
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.AdminMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -79,6 +80,11 @@
 public final class ClassLoaderProvider {
 
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Private URLClassLoader implementation. This is only required so
    * that we can provide access to the addURL method.
    */
@@ -360,7 +366,7 @@
         loader.addJarFile(extension);
       } catch (Exception e) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ADMIN_CANNOT_OPEN_JAR_FILE;
@@ -437,12 +443,12 @@
       addExtension(extensionsPath.listFiles(filter));
     } catch (InitializationException e) {
       if (debugEnabled()) {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw e;
     } catch (Exception e) {
       if (debugEnabled()) {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ADMIN_EXTENSIONS_CANNOT_LIST_FILES;
@@ -477,7 +483,7 @@
       loadDefinitionClasses(is);
     } catch (IOException e) {
       if (debugEnabled()) {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ADMIN_CANNOT_READ_CORE_MANIFEST;
@@ -486,7 +492,7 @@
       throw new InitializationException(msgID, message);
     } catch (Exception e) {
       if (debugEnabled()) {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ADMIN_CANNOT_LOAD_CLASS_FROM_CORE_MANIFEST;
@@ -519,7 +525,7 @@
         is = jarFile.getInputStream(entry);
       } catch (Exception e) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ADMIN_CANNOT_READ_EXTENSION_MANIFEST;
@@ -532,7 +538,7 @@
         loadDefinitionClasses(is);
       } catch (IOException e) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ADMIN_CANNOT_READ_EXTENSION_MANIFEST;
@@ -541,7 +547,7 @@
         throw new InitializationException(msgID, message);
       } catch (Exception e) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ADMIN_CANNOT_LOAD_CLASS_FROM_EXTENSION_MANIFEST;
@@ -595,7 +601,7 @@
         continue;
       }
 
-      debugMessage(DebugLogLevel.INFO, "Loading class " + className);
+      TRACER.debugMessage(DebugLogLevel.INFO, "Loading class " + className);
 
       // Use the underlying loader.
       Class.forName(className, true, loader);
@@ -622,7 +628,7 @@
       jarFile = new JarFile(jar);
     } catch (Exception e) {
       if (debugEnabled()) {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ADMIN_CANNOT_OPEN_JAR_FILE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java b/opendj-sdk/opends/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
index 8d7b344..4233b02 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
@@ -27,9 +27,8 @@
 package org.opends.server.admin.server;
 
 
-
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import org.opends.server.api.ConfigAddListener;
 import org.opends.server.api.ConfigDeleteListener;
@@ -51,6 +50,11 @@
  */
 final class DelayedConfigAddListener implements ConfigAddListener {
 
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The name of the parent entry.
   private final DN parent;
 
@@ -139,7 +143,7 @@
         }
       } catch (ConfigException e) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // Ignore this error as it implies that this listener has
diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java b/opendj-sdk/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
index 67741d3..654b806 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
@@ -29,8 +29,8 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import org.opends.server.loggers.debug.DebugTracer;
+import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
@@ -78,7 +78,6 @@
 import org.opends.server.types.DirectoryException;
 
 
-
 /**
  * A server-side managed object.
  *
@@ -90,6 +89,11 @@
     implements PropertyProvider {
 
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Internal inherited default value provider implementation.
    */
   private static class MyInheritedDefaultValueProvider implements
@@ -884,7 +888,7 @@
       // Ignore the exception since this implies deregistration.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -912,7 +916,7 @@
       // Ignore the exception since this implies deregistration.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -950,7 +954,7 @@
     } catch (ConfigException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = AdminMessages.MSGID_ADMIN_CANNOT_GET_LISTENER_BASE;
@@ -974,7 +978,7 @@
     } catch (ConfigException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = AdminMessages.MSGID_ADMIN_CANNOT_GET_MANAGED_OBJECT;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
index 5ff8769..bc8b7e4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
@@ -61,6 +61,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -73,6 +74,11 @@
  */
 public abstract class ClientConnection
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of authentication information for this client connection.
   private AuthenticationInfo authenticationInfo;
 
@@ -185,7 +191,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -960,7 +966,7 @@
         String message = getMessage(msgID, getConnectionID(), -1L,
                                     String.valueOf(authDN),
                                     privilege.getName(), result);
-        debugMessage(DebugLogLevel.INFO, message);
+        TRACER.debugMessage(DebugLogLevel.INFO, message);
       }
       else
       {
@@ -971,7 +977,7 @@
                                     operation.getOperationID(),
                                     String.valueOf(authDN),
                                     privilege.getName(), result);
-        debugMessage(DebugLogLevel.INFO, message);
+        TRACER.debugMessage(DebugLogLevel.INFO, message);
       }
     }
 
@@ -1042,7 +1048,7 @@
         String message = getMessage(msgID, getConnectionID(), -1L,
                                     String.valueOf(authDN),
                                     buffer.toString(), result);
-        debugMessage(DebugLogLevel.INFO, message);
+        TRACER.debugMessage(DebugLogLevel.INFO, message);
       }
       else
       {
@@ -1053,7 +1059,7 @@
                                     operation.getOperationID(),
                                     String.valueOf(authDN),
                                     buffer.toString(), result);
-        debugMessage(DebugLogLevel.INFO, message);
+        TRACER.debugMessage(DebugLogLevel.INFO, message);
       }
 
       return result;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
index 4c5b153..13e1082 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
@@ -117,7 +117,14 @@
    */
   public Map<String,TraceSettings> getMethodSettings(String className)
   {
-    return new HashMap<String, TraceSettings>();
+    if(methodTraceSettings == null)
+    {
+      return null;
+    }
+    else
+    {
+      return methodTraceSettings.get(className);
+    }
   }
 
 
@@ -353,12 +360,16 @@
    * @param  sourceLocation  The location of the method in the source.
    * @param  args            The parameters provided to the
    *                         constructor.
+   * @param  stackTrace      The stack trace at the time the
+   *                         constructor is executed or null if its
+   *                         not available.
    */
   public abstract void traceConstructor(LogLevel level,
                                         TraceSettings settings,
                                         String signature,
                                         String sourceLocation,
-                                        Object[] args);
+                                        Object[] args,
+                                      StackTraceElement[] stackTrace);
 
 
 
@@ -372,13 +383,16 @@
    * @param  obj             The object instance on which the method
    *                         has been invoked.
    * @param  args            The parameters provided to the method.
+   * @param  stackTrace      The stack trace at the time the method
+   *                         is executed or null if its not available.
    */
-  public abstract void traceNonStaticMethodEntry(LogLevel level,
+  public abstract void traceMethodEntry(LogLevel level,
                                                TraceSettings settings,
                                                String signature,
                                                String sourceLocation,
                                                Object obj,
-                                               Object[] args);
+                                               Object[] args,
+                                      StackTraceElement[] stackTrace);
 
 
 
@@ -390,12 +404,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  args            The parameters provided to the method.
+   * @param  stackTrace      The stack trace at the time the method
+   *                         is executed or null if its not available.
    */
   public abstract void traceStaticMethodEntry(LogLevel level,
                                               TraceSettings settings,
                                               String signature,
                                               String sourceLocation,
-                                              Object[] args);
+                                              Object[] args,
+                                      StackTraceElement[] stackTrace);
 
 
 
@@ -407,12 +424,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  ret             The return value for the method.
+   * @param  stackTrace      The stack trace at the time the method
+   *                         is returned or null if its not available.
    */
   public abstract void traceReturn(LogLevel level,
                                    TraceSettings settings,
                                    String signature,
                                    String sourceLocation,
-                                   Object ret);
+                                   Object ret,
+                                   StackTraceElement[] stackTrace);
 
 
 
@@ -424,12 +444,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  msg             The message to be logged.
+   * @param  stackTrace      The stack trace at the time the message
+   *                         is logged or null if its not available.
    */
   public abstract void traceMessage(LogLevel level,
                                     TraceSettings settings,
                                     String signature,
                                     String sourceLocation,
-                                    String msg);
+                                    String msg,
+                                    StackTraceElement[] stackTrace);
 
 
 
@@ -441,12 +464,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  ex              The exception that was thrown.
+   * @param  stackTrace      The stack trace at the time the exception
+   *                         is thrown or null if its not available.
    */
   public abstract void traceThrown(LogLevel level,
                                    TraceSettings settings,
                                    String signature,
                                    String sourceLocation,
-                                   Throwable ex);
+                                   Throwable ex,
+                                   StackTraceElement[] stackTrace);
 
 
 
@@ -458,12 +484,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  ex              The exception that was caught.
+   * @param  stackTrace      The stack trace at the time the exception
+   *                         is caught or null if its not available.
    */
   public abstract void traceCaught(LogLevel level,
                                    TraceSettings settings,
                                    String signature,
                                    String sourceLocation,
-                                   Throwable ex);
+                                   Throwable ex,
+                                   StackTraceElement[] stackTrace);
 
 
 
@@ -480,6 +509,8 @@
    *                         {@code null}).
    * @param  key             The key to dump.
    * @param  data            The data to dump.
+   * @param  stackTrace      The stack trace at the time the access
+   *                         occured or null if its not available.
    */
   public abstract void traceJEAccess(LogLevel level,
                                      TraceSettings settings,
@@ -489,7 +520,8 @@
                                      Database database,
                                      Transaction txn,
                                      DatabaseEntry key,
-                                     DatabaseEntry data);
+                                     DatabaseEntry data,
+                                     StackTraceElement[] stackTrace);
 
 
 
@@ -501,12 +533,15 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  data            The data to dump.
+   * @param  stackTrace      The stack trace at the time the data
+   *                         is logged or null if its not available.
    */
   public abstract void traceData(LogLevel level,
                                  TraceSettings settings,
                                  String signature,
                                  String sourceLocation,
-                                 byte[] data);
+                                 byte[] data,
+                                 StackTraceElement[] stackTrace);
 
 
 
@@ -518,12 +553,16 @@
    * @param  signature       The method signature.
    * @param  sourceLocation  The location of the method in the source.
    * @param  element         The protocol element to dump.
+   * @param  stackTrace      The stack trace at the time the protocol
+   *                         element is logged or null if its not
+   *                         available.
    */
   public abstract void traceProtocolElement(LogLevel level,
                                             TraceSettings settings,
                                             String signature,
                                             String sourceLocation,
-                                            ProtocolElement element);
+                                            ProtocolElement element,
+                                      StackTraceElement[] stackTrace);
 
 
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/EqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/api/EqualityMatchingRule.java
index 418f30d..03b651d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/EqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/EqualityMatchingRule.java
@@ -34,6 +34,7 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 
 
@@ -46,6 +47,11 @@
        extends MatchingRule
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Indicates whether the two provided normalized values are equal to
    * each other.
    *
@@ -122,7 +128,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -133,7 +139,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
 
         return 0;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java b/opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java
index 5096263..e7c198c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/MonitorProvider.java
@@ -39,6 +39,7 @@
 import org.opends.server.types.ObjectClass;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 
 
@@ -52,6 +53,11 @@
 public abstract class MonitorProvider
        extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether a request has been received to stop running.
   private boolean stopRequested;
 
@@ -126,7 +132,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/VirtualAttributeProvider.java b/opendj-sdk/opends/src/server/org/opends/server/api/VirtualAttributeProvider.java
index 6e15f93..32d638e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/VirtualAttributeProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/VirtualAttributeProvider.java
@@ -45,6 +45,7 @@
 import org.opends.server.types.VirtualAttributeRule;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 
 
@@ -60,6 +61,11 @@
        <T extends VirtualAttributeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Initializes this virtual attribute based on the information in
    * the provided configuration entry.
    *
@@ -271,7 +277,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The substring couldn't be normalized.  We have to return
@@ -301,7 +307,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // The substring couldn't be normalized.  We have to return
@@ -328,7 +334,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The substring couldn't be normalized.  We have to return
@@ -356,7 +362,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The value couldn't be normalized.  If we can't find a
@@ -407,7 +413,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -432,7 +438,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
@@ -484,7 +490,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -509,7 +515,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
@@ -561,7 +567,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -584,7 +590,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
diff --git a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciHandler.java b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
index cb2c8f1..274dd86 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciHandler.java
@@ -33,13 +33,13 @@
 import static org.opends.server.authorization.dseecompat.Aci.*;
 import org.opends.server.core.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import org.opends.server.types.*;
 import static org.opends.server.util.StaticUtils.toLowerCase;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -54,6 +54,11 @@
  */
 public class AciHandler extends AccessControlHandler
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
     /*
      * The list that holds that ACIs keyed by the DN of the entry
       * holding the ACI.
@@ -177,7 +182,7 @@
             }
         }  catch (Exception e) {
             if (debugEnabled())
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
             msgID = MSGID_ACI_HANDLER_FAIL_PROCESS_GLOBAL_ACI;
             String message =
                     getMessage(msgID, String.valueOf(configuration.dn()),
diff --git a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
index 21fdc80..dbf1143 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -36,9 +36,9 @@
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 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.opends.server.types.*;
 import static org.opends.server.messages.AciMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -52,6 +52,11 @@
  */
 public class AciListenerManager
         implements ChangeNotificationListener, BackendInitializationListener {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
     /*
      * The AciList caches the ACIs.
@@ -179,7 +184,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           //TODO log message
           continue;
@@ -197,7 +202,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           //TODO log message
           continue;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
index 7a31dc2..278216b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/DNS.java
@@ -31,6 +31,7 @@
 import static org.opends.server.authorization.dseecompat.Aci.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.*;
 import java.net.InetAddress;
@@ -45,6 +46,11 @@
  * 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();
+
 
     /*
      * List of patterns to match against.
@@ -159,7 +165,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 int msgID = MSGID_ACI_ERROR_CHECKING_CANONICAL_HOSTNAME;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
index a1031e5..c0af4c3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
@@ -36,8 +36,9 @@
 import static org.opends.server.util.StaticUtils.isHexDigit;
 import static org.opends.server.util.StaticUtils.hexStringToByteArray;
 import org.opends.server.util.Validator;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -67,6 +68,11 @@
 public class PatternDN
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * If the pattern did not include any Multiple-Whole-RDN wildcards, then
    * this is the sequence of RDN patterns in the DN pattern.  Otherwise it
    * is null.
@@ -1208,7 +1214,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE;
@@ -1458,7 +1464,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
index e2f26cd..31dbe27 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
@@ -63,8 +63,8 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -88,6 +88,11 @@
        extends Backend
        implements ConfigurationChangeListener<BackupBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current configuration state.
   private BackupBackendCfg currentConfig;
 
@@ -160,7 +165,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKUP_CANNOT_DECODE_BACKUP_ROOT_DN;
@@ -233,7 +238,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -268,7 +273,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -440,7 +445,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY;
@@ -453,7 +458,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY;
@@ -563,7 +568,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY;
@@ -575,7 +580,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY;
@@ -888,7 +893,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             continue;
@@ -930,7 +935,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
 
                   continue;
@@ -987,7 +992,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               continue;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/MemoryBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/MemoryBackend.java
index 07b8ac8..cab822a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/MemoryBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/MemoryBackend.java
@@ -59,8 +59,8 @@
 import org.opends.server.util.LDIFWriter;
 import org.opends.server.util.Validator;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -103,6 +103,11 @@
 public class MemoryBackend
        extends Backend
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The base DNs for this backend.
   private DN[] baseDNs;
 
@@ -204,7 +209,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -245,7 +250,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -418,7 +423,7 @@
             // so just ignore it if it does for some reason.
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -679,7 +684,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_MEMORYBACKEND_CANNOT_CREATE_LDIF_WRITER;
@@ -717,7 +722,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
index 25990d1..4b04068 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
@@ -70,8 +70,8 @@
 import org.opends.server.util.Validator;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -93,6 +93,12 @@
        extends Backend
        implements ConfigurationChangeListener<BackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+
   // The set of user-defined attributes that will be included in the base
   // monitor entry.
   private ArrayList<Attribute> userDefinedAttributes;
@@ -209,7 +215,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_MONITOR_CANNOT_DECODE_MONITOR_ROOT_DN;
@@ -243,7 +249,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -278,7 +284,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -978,7 +984,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER;
@@ -997,7 +1003,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -1008,7 +1014,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
 
@@ -1032,7 +1038,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         try
@@ -1043,7 +1049,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
 
@@ -1066,7 +1072,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -1282,7 +1288,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/RootDSEBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/RootDSEBackend.java
index fff0b3b..d7140ca 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/RootDSEBackend.java
@@ -73,10 +73,10 @@
 import org.opends.server.util.Validator;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ConfigMessages.
@@ -104,6 +104,11 @@
        extends Backend
        implements ConfigurationChangeListener<RootDSEBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of standard "static" attributes that we will always include in the
   // root DSE entry and won't change while the server is running.
   private ArrayList<Attribute> staticDSEAttributes;
@@ -254,7 +259,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION;
@@ -1048,7 +1053,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           throw de;
@@ -1057,7 +1062,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_ROOTDSE_UNEXPECTED_SEARCH_FAILURE;
@@ -1140,7 +1145,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER;
@@ -1160,7 +1165,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ROOTDSE_UNABLE_TO_EXPORT_DSE;
@@ -1178,7 +1183,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -1364,7 +1369,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION;
@@ -1428,7 +1433,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION;
@@ -1480,7 +1485,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
index fb56164..4868f61 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
@@ -116,8 +116,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -138,6 +138,12 @@
      implements ConfigurationChangeListener<SchemaBackendCfg>, AlertGenerator
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -389,7 +395,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -500,7 +506,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_SCHEMA_ERROR_DETERMINING_SCHEMA_CHANGES;
@@ -541,7 +547,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -1103,7 +1109,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE;
@@ -1131,7 +1137,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS;
@@ -1159,7 +1165,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM;
@@ -1187,7 +1193,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DCR;
@@ -1215,7 +1221,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR;
@@ -1243,7 +1249,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE;
@@ -1292,7 +1298,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE;
@@ -1321,7 +1327,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS;
@@ -1349,7 +1355,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM;
@@ -1377,7 +1383,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DCR;
@@ -1406,7 +1412,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR;
@@ -1435,7 +1441,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE;
@@ -1499,7 +1505,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw de;
@@ -1508,7 +1514,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SCHEMA_MODIFY_CANNOT_WRITE_NEW_SCHEMA;
@@ -1782,7 +1788,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE;
@@ -2132,7 +2138,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS;
@@ -2462,7 +2468,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM;
@@ -3035,7 +3041,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR;
@@ -3749,7 +3755,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       boolean allCleaned = true;
@@ -3769,7 +3775,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
 
           allCleaned = false;
@@ -3813,7 +3819,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       for (File f : installedFileList)
@@ -3829,7 +3835,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
       }
@@ -3854,7 +3860,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
 
           allRestored = false;
@@ -3899,7 +3905,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -3917,7 +3923,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -3963,7 +3969,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -4004,7 +4010,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -4159,7 +4165,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SCHEMA_UNABLE_TO_CREATE_LDIF_WRITER;
@@ -4179,7 +4185,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SCHEMA_UNABLE_TO_EXPORT_BASE;
@@ -4197,7 +4203,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -4326,7 +4332,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_SCHEMA_BACKUP_CANNOT_GET_MAC;
@@ -4350,7 +4356,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_SCHEMA_BACKUP_CANNOT_GET_DIGEST;
@@ -4403,7 +4409,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SCHEMA_BACKUP_CANNOT_CREATE_ARCHIVE_FILE;
@@ -4431,7 +4437,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_SCHEMA_BACKUP_CANNOT_GET_CIPHER;
@@ -4476,7 +4482,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_SCHEMA_BACKUP_CANNOT_LIST_SCHEMA_FILES;
@@ -4551,7 +4557,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         try
@@ -4582,7 +4588,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_SCHEMA_BACKUP_CANNOT_CLOSE_ZIP_STREAM;
@@ -4626,7 +4632,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_SCHEMA_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR;
@@ -5220,7 +5226,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_SCHEMA_CANNOT_DETERMINE_BASE_DN;
@@ -5268,7 +5274,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY;
@@ -5310,7 +5316,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_SCHEMA_CANNOT_DEREGISTER_BASE_DN;
@@ -5333,7 +5339,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_SCHEMA_CANNOT_REGISTER_BASE_DN;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
index 829b276..5237af3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
@@ -32,8 +32,8 @@
 
 import org.opends.server.types.*;
 import org.opends.server.protocols.asn1.ASN1OctetString;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.api.ApproximateMatchingRule;
 
 /**
@@ -42,6 +42,11 @@
 public class ApproximateIndexer extends Indexer
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The comparator for index keys generated by this class.
    */
   private static final Comparator<byte[]> comparator =
@@ -214,7 +219,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
index 53515d7..02f09a2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -50,8 +50,8 @@
 import org.opends.server.types.Modification;
 import org.opends.server.types.SearchFilter;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
@@ -68,6 +68,11 @@
  */
 public class AttributeIndex
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -569,7 +574,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -627,7 +632,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -667,7 +672,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -756,7 +761,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -798,7 +803,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -881,7 +886,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 3da0091..c703fdd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -50,8 +50,8 @@
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.*;
 import static org.opends.server.util.ServerConstants.*;
 import org.opends.server.admin.std.server.JEBackendCfg;
@@ -66,6 +66,11 @@
      extends Backend
      implements ConfigurationChangeListener<JEBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The configuration of this JE backend.
@@ -174,7 +179,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -244,7 +249,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_OPEN_ENV_FAIL,
                                   e.getMessage());
@@ -259,7 +264,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, databaseException);
+        TRACER.debugCaught(DebugLogLevel.ERROR, databaseException);
       }
       String message = getMessage(MSGID_JEB_OPEN_DATABASE_FAIL,
                                   databaseException.getMessage());
@@ -283,7 +288,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, databaseException);
+        TRACER.debugCaught(DebugLogLevel.ERROR, databaseException);
       }
       String message = getMessage(MSGID_JEB_GET_ENTRY_COUNT_FAILED,
                                   databaseException.getMessage());
@@ -301,7 +306,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -350,7 +355,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -378,7 +383,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_JEB_DATABASE_EXCEPTION;
       String message = getMessage(msgID, e.getMessage());
@@ -541,7 +546,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -576,7 +581,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                     e.getMessage());
@@ -587,7 +592,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                      e.getMessage(),
@@ -633,7 +638,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                     e.getMessage());
@@ -644,7 +649,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                      e.getMessage(),
@@ -687,7 +692,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                     e.getMessage());
@@ -698,7 +703,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                      e.getMessage(),
@@ -743,7 +748,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                     e.getMessage());
@@ -754,7 +759,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                      e.getMessage(),
@@ -814,7 +819,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, e.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -824,7 +829,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -861,7 +866,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, e.getMessage());
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
@@ -904,7 +909,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
       int msgID = MSGID_JEB_IO_ERROR;
       String message = getMessage(msgID, ioe.getMessage());
@@ -915,7 +920,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, je);
+        TRACER.debugCaught(DebugLogLevel.ERROR, je);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    je.getMessage(),
@@ -925,7 +930,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                   de.getMessage());
@@ -936,7 +941,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -957,7 +962,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -981,7 +986,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
       int msgID = MSGID_JEB_IO_ERROR;
       String message = getMessage(msgID, ioe.getMessage());
@@ -992,7 +997,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, je);
+        TRACER.debugCaught(DebugLogLevel.ERROR, je);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    je.getMessage(),
@@ -1002,7 +1007,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                   de.getMessage());
@@ -1050,7 +1055,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                   e.getMessage());
@@ -1061,7 +1066,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -1082,7 +1087,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1136,7 +1141,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION,
                                   e.getMessage());
@@ -1147,7 +1152,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -1168,7 +1173,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1281,7 +1286,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             resultCode = DirectoryServer.getServerErrorResultCode();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackupManager.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackupManager.java
index 272eccc..345cdaf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackupManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackupManager.java
@@ -68,10 +68,10 @@
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -84,6 +84,11 @@
 public class BackupManager
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The common prefix for archive files.
    */
   public static final String BACKUP_BASE_FILENAME = "backup-";
@@ -156,7 +161,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -202,7 +207,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_MAC;
@@ -225,7 +230,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_DIGEST;
@@ -347,7 +352,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_JEB_BACKUP_CANNOT_CREATE_ARCHIVE_FILE;
@@ -375,7 +380,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER;
@@ -442,7 +447,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_JEB_BACKUP_CANNOT_LIST_LOG_FILES;
@@ -465,7 +470,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         msgID   = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE;
         message = getMessage(msgID, ZIPENTRY_EMPTY_PLACEHOLDER,
@@ -547,7 +552,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
             msgID   = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE;
             message = getMessage(msgID, zipEntryName,
@@ -579,7 +584,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // A log file has been deleted by the cleaner since we started.
@@ -589,7 +594,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
             msgID   = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE;
             message = getMessage(msgID, logFile.getName(),
@@ -629,7 +634,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             msgID   = MSGID_JEB_BACKUP_CANNOT_LIST_LOG_FILES;
@@ -664,7 +669,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -683,7 +688,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_JEB_BACKUP_CANNOT_CLOSE_ZIP_STREAM;
@@ -728,7 +733,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR;
@@ -769,7 +774,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -803,7 +808,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE;
       String message = getMessage(msgID, backupInfo.getBackupID(),
@@ -824,7 +829,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE;
         String message = getMessage(msgID, dependent.getBackupID(),
@@ -843,7 +848,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE;
       String message = getMessage(msgID, backupInfo.getBackupID(),
@@ -906,7 +911,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                    e.getMessage(),
@@ -921,7 +926,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR;
@@ -995,7 +1000,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_MAC;
@@ -1018,7 +1023,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_DIGEST;
@@ -1046,7 +1051,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER;
@@ -1390,7 +1395,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Config.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Config.java
index 63a1cf3..e3b5b28 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Config.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Config.java
@@ -33,6 +33,8 @@
     MSGID_CONFIG_BACKEND_INSANE_MODE;
 import static org.opends.server.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.StaticUtils.getFileForPath;
 
 import org.opends.server.config.ConfigConstants;
@@ -53,8 +55,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.io.File;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.*;
 import org.opends.server.admin.std.server.JEBackendCfg;
 import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -65,6 +65,11 @@
 public class Config
      implements ConfigurationChangeListener<JEBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The name of the object class which configures
@@ -281,7 +286,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
index aa26c19..3f32629 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
@@ -36,8 +36,8 @@
 import java.util.Map;
 import java.lang.reflect.Method;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.admin.std.server.JEBackendCfg;
 import org.opends.server.admin.std.meta.JEBackendCfgDefn;
 import org.opends.server.admin.DurationPropertyDefinition;
@@ -50,6 +50,11 @@
 public class ConfigurableEnvironment
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The name of the attribute which configures the database cache size as a
    * percentage of Java VM heap size.
    */
@@ -290,7 +295,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return "";
     }
@@ -324,7 +329,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2ID.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2ID.java
index d55cc8a..d5b42a2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2ID.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2ID.java
@@ -39,10 +39,8 @@
 import org.opends.server.types.DN;
 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.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 /**
  * This class represents the DN database, or dn2id, which has one record
@@ -52,6 +50,11 @@
 public class DN2ID
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The database entryContainer.
    */
   private EntryContainer entryContainer;
@@ -117,7 +120,7 @@
 
       if(debugEnabled())
       {
-        debugInfo("JE DN2ID database %s opened with %d records.",
+        TRACER.debugInfo("JE DN2ID database %s opened with %d records.",
                   database.getDatabaseName(), database.count());
       }
     }
@@ -289,7 +292,7 @@
     {
       if(debugEnabled())
       {
-        debugVerbose("%d existing records will be deleted from the " +
+        TRACER.debugVerbose("%d existing records will be deleted from the " +
             "database", getRecordCount());
       }
       DatabaseEntry data = new DatabaseEntry();
@@ -307,14 +310,14 @@
       }
       if(debugEnabled())
       {
-        debugVerbose("%d records deleted", deletedCount);
+        TRACER.debugVerbose("%d records deleted", deletedCount);
       }
     }
     catch(DatabaseException de)
     {
       if(debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw de;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2URI.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2URI.java
index bdb9356..9f9f9f8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2URI.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DN2URI.java
@@ -61,10 +61,8 @@
 import java.util.Set;
 
 import static org.opends.server.util.ServerConstants.ATTR_REFERRAL_URL;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.JebMessages.
      MSGID_JEB_REFERRAL_RESULT_MESSAGE;
@@ -80,6 +78,11 @@
  */
 public class DN2URI
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The standard attribute type that is used to specify the set of referral
@@ -160,7 +163,7 @@
 
       if(debugEnabled())
       {
-        debugInfo("JE DN2URI database %s opened with %d records.",
+        TRACER.debugInfo("JE DN2URI database %s opened with %d records.",
                   database.getDatabaseName(), database.count());
       }
     }
@@ -425,7 +428,7 @@
     {
       if(debugEnabled())
       {
-        debugVerbose("%d existing records will be deleted from the " +
+        TRACER.debugVerbose("%d existing records will be deleted from the " +
             "database", getRecordCount());
       }
       DatabaseEntry data = new DatabaseEntry();
@@ -443,14 +446,14 @@
       }
       if(debugEnabled())
       {
-        debugVerbose("%d records deleted", deletedCount);
+        TRACER.debugVerbose("%d records deleted", deletedCount);
       }
     }
     catch(DatabaseException de)
     {
       if(debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw de;
@@ -557,7 +560,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         // Return the non-LDAP URI as is.
       }
@@ -630,14 +633,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     catch (UnsupportedEncodingException e)
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -763,7 +766,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               // Return the non-LDAP URI as is.
             }
@@ -788,14 +791,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     catch (UnsupportedEncodingException e)
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
index 7da1027..bd65016 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/DbPreloadComparator.java
@@ -28,8 +28,8 @@
 
 import com.sleepycat.je.Database;
 import com.sleepycat.je.DatabaseException;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import java.util.Comparator;
@@ -40,6 +40,11 @@
  */
 public class DbPreloadComparator implements Comparator<Database>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * Calculate the relative priority of a database for preloading.
@@ -69,7 +74,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return 3;
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
index 96161a3..4af97ad 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -59,10 +59,8 @@
 
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugJEAccess;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -72,6 +70,11 @@
  */
 public class EntryContainer
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The name of the entry database.
@@ -271,7 +274,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       close();
       throw e;
@@ -332,7 +335,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       close();
       throw e;
@@ -390,7 +393,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       close();
       throw e;
@@ -558,7 +561,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                                            e.getMessage(), e.getMessageID(), e);
@@ -586,7 +589,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                                            e.getMessage(), e.getMessageID(), e);
@@ -606,7 +609,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
                                            e.getMessage(), e.getMessageID(), e);
@@ -650,7 +653,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -890,7 +893,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -973,7 +976,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int msgID = MSGID_JEB_INVALID_PAGED_RESULTS_COOKIE;
         String str = StaticUtils.bytesToHex(pageRequest.getCookie().value());
@@ -1114,14 +1117,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     catch (JebException e)
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -1183,7 +1186,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int msgID = MSGID_JEB_INVALID_PAGED_RESULTS_COOKIE;
         String str = StaticUtils.bytesToHex(pageRequest.getCookie().value());
@@ -1247,7 +1250,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               continue;
             }
@@ -1443,7 +1446,7 @@
         }
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, deadlockException);
+          TRACER.debugCaught(DebugLogLevel.ERROR, deadlockException);
         }
       }
       catch (DatabaseException databaseException)
@@ -2216,7 +2219,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -3413,7 +3416,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     try
@@ -3424,7 +3427,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     try
@@ -3435,7 +3438,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     try
@@ -3446,7 +3449,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     for (AttributeIndex index : attrIndexMap.values())
@@ -3459,7 +3462,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -3507,7 +3510,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -3590,7 +3593,8 @@
         database = env.openDatabase(txn, fullName, dbConfig);
         if (debugEnabled())
         {
-          debugVerbose("open db=%s txnid=%d", database.getDatabaseName(),
+          TRACER.debugVerbose("open db=%s txnid=%d",
+                              database.getDatabaseName(),
                        txn.getId());
         }
         transactionCommit(txn);
@@ -3606,7 +3610,8 @@
       database = env.openDatabase(null, fullName, dbConfig);
       if (debugEnabled())
       {
-        debugVerbose("open db=%s txnid=none", database.getDatabaseName());
+        TRACER.debugVerbose("open db=%s txnid=none",
+                            database.getDatabaseName());
       }
     }
 
@@ -3631,7 +3636,7 @@
     Transaction txn = env.beginTransaction(parentTxn, txnConfig);
     if (debugEnabled())
     {
-      debugVerbose("beginTransaction", "begin txnid=" + txn.getId());
+      TRACER.debugVerbose("beginTransaction", "begin txnid=" + txn.getId());
     }
     return txn;
   }
@@ -3651,7 +3656,7 @@
       txn.commit();
       if (debugEnabled())
       {
-        debugVerbose("commit txnid=%d", txn.getId());
+        TRACER.debugVerbose("commit txnid=%d", txn.getId());
       }
     }
   }
@@ -3671,7 +3676,7 @@
       txn.abort();
       if (debugEnabled())
       {
-        debugVerbose("abort txnid=%d", txn.getId());
+        TRACER.debugVerbose("abort txnid=%d", txn.getId());
       }
     }
   }
@@ -3693,7 +3698,8 @@
     OperationStatus status = database.putNoOverwrite(txn, key, data);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data);
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
+                           data);
     }
     return status;
   }
@@ -3716,7 +3722,7 @@
     OperationStatus status = cursor.putNoOverwrite(key, data);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status,
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status,
                     cursor.getDatabase(), null, key, data);
     }
     return status;
@@ -3739,7 +3745,8 @@
     OperationStatus status = database.put(txn, key, data);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data);
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
+                           data);
     }
     return status;
   }
@@ -3762,7 +3769,7 @@
     OperationStatus status = cursor.put(key, data);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status,
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status,
                     cursor.getDatabase(), null, key, data);
     }
     return status;
@@ -3788,7 +3795,8 @@
     OperationStatus status = database.get(txn, key, data, lockMode);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data);
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
+                           data);
     }
     return status;
   }
@@ -3813,7 +3821,7 @@
     OperationStatus status = cursor.getSearchKey(key, data, lockMode);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status,
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status,
                     cursor.getDatabase(), null, key, data);
     }
     return status;
@@ -3835,7 +3843,8 @@
     OperationStatus status = database.delete(txn, key);
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, null);
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key,
+                           null);
     }
     return status;
   }
@@ -3852,7 +3861,7 @@
     long count = database.count();
     if (debugEnabled())
     {
-      debugJEAccess(DebugLogLevel.VERBOSE, OperationStatus.SUCCESS,
+      TRACER.debugJEAccess(DebugLogLevel.VERBOSE, OperationStatus.SUCCESS,
                     database, null, null, null);
     }
     return count;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EnvManager.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
index 1c6d808..0aa6128 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.MSGID_JEB_CREATE_FAIL;
@@ -43,6 +43,11 @@
  */
 public class EnvManager
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * A filename filter to match all kinds of JE files.
@@ -97,7 +102,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         String message = getMessage(MSGID_JEB_CREATE_FAIL, e.getMessage());
         throw new JebException(MSGID_JEB_CREATE_FAIL, message, e);
@@ -134,7 +139,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       String message = getMessage(MSGID_JEB_REMOVE_FAIL, e.getMessage());
       throw new JebException(MSGID_JEB_REMOVE_FAIL, message, e);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EqualityIndexer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
index 553a394..9c4eb95 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import com.sleepycat.je.Transaction;
@@ -52,6 +52,11 @@
  */
 public class EqualityIndexer extends Indexer
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -345,7 +350,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ExportJob.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ExportJob.java
index bcbe65d..856afd6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ExportJob.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ExportJob.java
@@ -44,12 +44,11 @@
 import java.io.IOException;
 import java.util.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.JebMessages.*;
 
 /**
@@ -57,6 +56,11 @@
  */
 public class ExportJob
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The requested LDIF export configuration.
@@ -202,9 +206,9 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("Malformed id2entry ID %s.%n",
+            TRACER.debugError("Malformed id2entry ID %s.%n",
                             StaticUtils.bytesToHex(key.getData()));
           }
           skippedCount++;
@@ -226,9 +230,9 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("Malformed id2entry record for ID %d:%n%s%n",
+            TRACER.debugError("Malformed id2entry record for ID %d:%n%s%n",
                        entryID.longValue(),
                        StaticUtils.bytesToHex(data.getData()));
           }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ID2Entry.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ID2Entry.java
index 25708b9..70ddbe0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ID2Entry.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ID2Entry.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
 
@@ -51,6 +51,11 @@
 public class ID2Entry
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The database entryContainer.
    */
   private EntryContainer entryContainer;
@@ -123,7 +128,7 @@
 
       if(debugEnabled())
       {
-        debugInfo("JE ID2Entry database %s opened with %d records.",
+        TRACER.debugInfo("JE ID2Entry database %s opened with %d records.",
                   database.getDatabaseName(), database.count());
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportJob.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportJob.java
index 4fa9876..0dcb6a0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportJob.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportJob.java
@@ -32,7 +32,6 @@
 import com.sleepycat.je.Transaction;
 
 import org.opends.server.api.Backend;
-import org.opends.server.loggers.debug.DebugLogger;
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.messages.JebMessages;
 import org.opends.server.types.AttributeType;
@@ -55,14 +54,14 @@
 import java.util.TimerTask;
 import java.util.concurrent.LinkedBlockingQueue;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.messages.JebMessages.
      MSGID_JEB_IMPORT_ENTRY_EXISTS;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.
      MSGID_JEB_IMPORT_PARENT_NOT_FOUND;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.JebMessages.*;
 
 /**
@@ -70,6 +69,10 @@
  */
 public class ImportJob implements Thread.UncaughtExceptionHandler
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
 
   /**
    * The backend instance we are importing into.
@@ -207,7 +210,7 @@
       logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
                message, msgID);
 
-      DebugLogger.debugInfo(
+      TRACER.debugInfo(
         rootContainer.getEnvironmentConfig().toString());
 
 
@@ -446,7 +449,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -538,14 +541,14 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
           catch (DirectoryException e)
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         } while (true);
@@ -651,7 +654,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -728,7 +731,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportThread.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportThread.java
index bcc3fd8..642ba2f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ImportThread.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.types.AttributeType;
@@ -48,6 +48,11 @@
  */
 public class ImportThread extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The import context of this thread.
@@ -259,7 +264,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           continue;
         }
@@ -315,14 +320,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     catch (IOException e)
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
index 44e7778..4a0b6c4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
@@ -26,10 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import com.sleepycat.je.Cursor;
@@ -58,6 +56,11 @@
  */
 public class Index
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -162,7 +165,7 @@
 
       if(debugEnabled())
       {
-        debugInfo("JE Index database %s opened with %d records.",
+        TRACER.debugInfo("JE Index database %s opened with %d records.",
                   database.getDatabaseName(), database.count());
       }
     }
@@ -343,7 +346,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -490,7 +493,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return new EntryIDSet();
     }
@@ -547,7 +550,7 @@
     {
       if(debugEnabled())
       {
-        debugVerbose("%d existing records will be deleted from the " +
+        TRACER.debugVerbose("%d existing records will be deleted from the " +
             "database", getRecordCount());
       }
       DatabaseEntry data = new DatabaseEntry();
@@ -565,14 +568,14 @@
       }
       if(debugEnabled())
       {
-        debugVerbose("%d records deleted", deletedCount);
+        TRACER.debugVerbose("%d records deleted", deletedCount);
       }
     }
     catch(DatabaseException de)
     {
       if(debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw de;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexMergeThread.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexMergeThread.java
index 1eecd53..6cb1884 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexMergeThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexMergeThread.java
@@ -47,11 +47,11 @@
 import java.util.TreeMap;
 import java.util.WeakHashMap;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.JebMessages.*;
 
 /**
@@ -60,6 +60,11 @@
  */
 public class IndexMergeThread extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The buffer size to use when reading data from disk.
@@ -161,7 +166,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -306,7 +311,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw e;
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
index ed30b5c..03476fc 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
@@ -32,8 +32,6 @@
 
 import org.opends.server.types.*;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
 import static org.opends.server.messages.JebMessages.
     MSGID_JEB_MISSING_DN2ID_RECORD;
 import static org.opends.server.messages.JebMessages.
@@ -42,6 +40,8 @@
     MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
 
@@ -51,6 +51,11 @@
 public class IndexRebuildThread extends DirectoryThread
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The entry container.
    */
   EntryContainer ec = null;
@@ -175,7 +180,8 @@
       //TODO: throw error
       if(debugEnabled())
       {
-        debugError("No index type specified. Rebuild process terminated.");
+        TRACER.debugError("No index type specified. Rebuild process " +
+            "terminated.");
       }
 
       return;
@@ -185,7 +191,8 @@
       //TODO: throw error
       if(debugEnabled())
       {
-        debugError("No attribute index specified. Rebuild process terminated.");
+        TRACER.debugError("No attribute index specified. Rebuild process " +
+            "terminated.");
       }
 
       return;
@@ -196,7 +203,7 @@
       //TODO: throw error
       if(debugEnabled())
       {
-        debugError("No index specified. Rebuild process terminated.");
+        TRACER.debugError("No index specified. Rebuild process terminated.");
       }
 
       return;
@@ -207,8 +214,9 @@
       totalEntries = getTotalEntries();
       if(debugEnabled())
       {
-        debugInfo("Initiating rebuild of the %s indexType/database", indexName);
-        debugVerbose("%d entries will be rebuilt", totalEntries);
+        TRACER.debugInfo("Initiating rebuild of the %s indexType/database",
+                         indexName);
+        TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
       }
 
       switch(indexType)
@@ -228,7 +236,7 @@
 
       if(debugEnabled())
       {
-        debugVerbose("Rebuilt %d entries", rebuiltEntries);
+        TRACER.debugVerbose("Rebuilt %d entries", rebuiltEntries);
       }
     }
     catch(Exception e)
@@ -241,7 +249,7 @@
 
       if(debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -302,7 +310,7 @@
             duplicatedEntries++;
             if(debugEnabled())
             {
-              debugInfo("Unable to insert entry with DN %s and ID %d " +
+              TRACER.debugInfo("Unable to insert entry with DN %s and ID %d " +
                   "into the DN2ID database because it already exists.",
                         entry.getDN().toString(), entryID.longValue());
             }
@@ -324,7 +332,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -391,7 +399,7 @@
             duplicatedEntries++;
             if(debugEnabled())
             {
-              debugInfo("Unable to insert entry with DN %s and ID %d " +
+              TRACER.debugInfo("Unable to insert entry with DN %s and ID %d " +
                   "into the DN2URI database because it already exists.",
                         entry.getDN().toString(), entryID.longValue());
             }
@@ -413,7 +421,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -493,8 +501,8 @@
                 if(debugEnabled())
                 {
                   duplicatedEntries++;
-                  debugInfo("Unable to insert entry with DN %s and ID %d " +
-                      "into the DN2Subtree database because it already " +
+                  TRACER.debugInfo("Unable to insert entry with DN %s and " +
+                      "ID %d into the DN2Subtree database because it already " +
                       "exists.",
                             entry.getDN().toString(), entryID.longValue());
                 }
@@ -526,7 +534,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -644,10 +652,9 @@
               if(debugEnabled())
               {
                 duplicatedEntries++;
-                debugInfo("Unable to insert entry with DN %s and ID %d " +
-                    "into the DN2Subtree database because it already " +
-                    "exists.",
-                          entry.getDN().toString(), entryID.longValue());
+                TRACER.debugInfo("Unable to insert entry with DN %s and ID " +
+                    "%d into the DN2Subtree database because it already " +
+                    "exists.", entry.getDN().toString(), entryID.longValue());
               }
             }
           }
@@ -670,7 +677,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -735,7 +742,7 @@
             if(debugEnabled())
             {
               duplicatedEntries++;
-              debugInfo("Unable to insert entry with DN %s and ID %d " +
+              TRACER.debugInfo("Unable to insert entry with DN %s and ID %d " +
                   "into the DN2Subtree database because it already " +
                   "exists.",
                         entry.getDN().toString(), entryID.longValue());
@@ -756,7 +763,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -821,7 +828,7 @@
             if(debugEnabled())
             {
               duplicatedEntries++;
-              debugInfo("Unable to insert entry with DN %s and ID %d " +
+              TRACER.debugInfo("Unable to insert entry with DN %s and ID %d " +
                   "into the DN2Subtree database because it already " +
                   "exists.",
                         entry.getDN().toString(), entryID.longValue());
@@ -842,7 +849,7 @@
 
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/JebFormat.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
index 7352ee6..2100d37 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
@@ -38,8 +38,8 @@
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,6 +50,11 @@
  */
 public class JebFormat
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The format version used by this class to encode and decode a DatabaseEntry.
@@ -200,7 +205,7 @@
 
         if(debugEnabled())
         {
-          debugInfo("Compression %d/%d%n",
+          TRACER.debugInfo("Compression %d/%d%n",
                     compressedSize, uncompressedSize);
         }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/OrderingIndexer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
index 5b30062..a6b38e3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/OrderingIndexer.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import org.opends.server.api.OrderingMatchingRule;
@@ -49,6 +49,11 @@
  */
 public class OrderingIndexer extends Indexer
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -269,7 +274,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RebuildJob.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RebuildJob.java
index e5c64e8..fb0b38e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RebuildJob.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RebuildJob.java
@@ -38,8 +38,9 @@
 import com.sleepycat.je.StatsConfig;
 import com.sleepycat.je.EnvironmentStats;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 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.opends.server.core.DirectoryServer;
 import static org.opends.server.messages.JebMessages.
     MSGID_JEB_ATTRIBUTE_INDEX_NOT_CONFIGURED;
@@ -68,6 +69,11 @@
 public class RebuildJob
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The rebuild configuraiton.
    */
   private RebuildConfig rebuildConfig;
@@ -180,8 +186,8 @@
 
           if(debugEnabled())
           {
-            debugVerbose("Rebuild thread %s stats: total %d processed %d " +
-                "rebuilt %d duplicated %d skipped %d",
+            TRACER.debugVerbose("Rebuild thread %s stats: total %d " +
+                "processed %d rebuilt %d duplicated %d skipped %d",
                          thread.getTotalEntries(), thread.getProcessedEntries(),
                          thread.getRebuiltEntries(),
                          thread.getDuplicatedEntries(),
@@ -192,7 +198,7 @@
         {
           if(debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -238,7 +244,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -274,7 +280,7 @@
         //TODO: Throw error and bail out.
         if(debugEnabled())
         {
-          debugError("Conflit detected. This job config: %s, " +
+          TRACER.debugError("Conflit detected. This job config: %s, " +
               "That job config: %s.",
                      job.rebuildConfig, otherJob.rebuildConfig);
         }
@@ -427,7 +433,8 @@
 
           if(debugEnabled())
           {
-            debugInfo("Created rebuild thread %s", rebuildThread.getName());
+            TRACER.debugInfo("Created rebuild thread %s",
+                             rebuildThread.getName());
           }
         }
 
@@ -505,7 +512,7 @@
 
         if(debugEnabled())
         {
-          debugInfo("Detailed overall rebuild job stats: rebuilt %d, " +
+          TRACER.debugInfo("Detailed overall rebuild job stats: rebuilt %d, " +
               "duplicated %d, skipped %d",
                     totalRebuilt, totalDuplicated, totalSkipped);
         }
@@ -534,7 +541,7 @@
       {
         if(debugEnabled())
         {
-          debugInfo("Delaying the start of thread %s because " +
+          TRACER.debugInfo("Delaying the start of thread %s because " +
               "the max number of rebuild threads has been reached.");
         }
         start = false;
@@ -560,7 +567,7 @@
 
             if(debugEnabled())
             {
-              debugInfo("Delaying the start of thread %s because " +
+              TRACER.debugInfo("Delaying the start of thread %s because " +
                   "it depends on another index rebuilt to " +
                   "go first.", t.getName());
             }
@@ -581,7 +588,7 @@
 
             if(debugEnabled())
             {
-              debugInfo("Delaying the start of thread %s because " +
+              TRACER.debugInfo("Delaying the start of thread %s because " +
                   "it depends on another index being rebuilt to " +
                   "finish.", t.getName());
             }
@@ -595,7 +602,7 @@
       {
         if(debugEnabled())
         {
-          debugInfo("Starting rebuild thread %s.", t.getName());
+          TRACER.debugInfo("Starting rebuild thread %s.", t.getName());
         }
         waitingThreads.remove(t);
         activeThreads.add(t);
@@ -617,7 +624,7 @@
 
         if(debugEnabled())
         {
-          debugInfo("Rebuild thread %s finished.", t.getName());
+          TRACER.debugInfo("Rebuild thread %s finished.", t.getName());
         }
         activeThreads.remove(t);
         completedThreads.add(t);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RootContainer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
index f4714b7..73a582e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
@@ -45,9 +45,8 @@
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.ResultCode;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
 import org.opends.server.api.Backend;
@@ -63,6 +62,11 @@
 public class RootContainer
      implements ConfigurationChangeListener<JEBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The JE database environment.
@@ -156,9 +160,9 @@
 
     if (debugEnabled())
     {
-      debugInfo("JE (%s) environment opened with the following config: %n%s",
-                JEVersion.CURRENT_VERSION.toString(),
-                env.getConfig().toString());
+      TRACER.debugInfo("JE (%s) environment opened with the following " +
+          "config: %n%s", JEVersion.CURRENT_VERSION.toString(),
+                          env.getConfig().toString());
 
           // Get current size of heap in bytes
     long heapSize = Runtime.getRuntime().totalMemory();
@@ -172,9 +176,9 @@
     // after garbage collection and decrease as new objects are created.
     long heapFreeSize = Runtime.getRuntime().freeMemory();
 
-      debugInfo("Current size of heap: %d bytes", heapSize);
-      debugInfo("Max size of heap: %d bytes", heapMaxSize);
-      debugInfo("Free memory in heap: %d bytes", heapFreeSize);
+      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);
     }
   }
 
@@ -386,7 +390,7 @@
 
           if(debugEnabled())
           {
-            debugInfo("file=" + db.getDatabaseName() +
+            TRACER.debugInfo("file=" + db.getDatabaseName() +
                       " LNs=" + preloadStats.getNLNsLoaded());
           }
 
@@ -410,7 +414,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -673,7 +677,7 @@
             }
             if(debugEnabled())
             {
-              debugInfo("The change to the following property will " +
+              TRACER.debugInfo("The change to the following property will " +
                         "take effect when the backend is restarted: " +
                         param.getName());
             }
@@ -687,7 +691,7 @@
 
       if (debugEnabled())
       {
-        debugInfo(env.getConfig().toString());
+        TRACER.debugInfo(env.getConfig().toString());
       }
     }
     catch (Exception e)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SubstringIndexer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
index 4d984b0..1c2f7c1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SubstringIndexer.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.backends.jeb;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import com.sleepycat.je.Transaction;
 import org.opends.server.protocols.asn1.ASN1OctetString;
@@ -48,6 +48,11 @@
  */
 public class SubstringIndexer extends Indexer
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -202,7 +207,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
index 6f00708..ca9b9ed 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -27,6 +27,8 @@
 package org.opends.server.backends.jeb;
 
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import com.sleepycat.je.Cursor;
 import com.sleepycat.je.CursorConfig;
@@ -56,9 +58,6 @@
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.ServerConstants;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.JebMessages.*;
@@ -79,6 +78,11 @@
  */
 public class VerifyJob
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The verify configuration.
@@ -449,9 +453,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("Malformed id2entry ID %s.%n",
+            TRACER.debugError("Malformed id2entry ID %s.%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -469,9 +473,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("Malformed id2entry record for ID %d:%n%s%n",
+            TRACER.debugError("Malformed id2entry record for ID %d:%n%s%n",
                        entryID.longValue(),
                        StaticUtils.bytesToHex(data.getData()));
           }
@@ -485,7 +489,7 @@
         errorCount++;
         if (debugEnabled())
         {
-          debugError("The stored entry count in id2entry (%d) does " +
+          TRACER.debugError("The stored entry count in id2entry (%d) does " +
               "not agree with the actual number of entry " +
               "records found (%d).%n", storedEntryCount, keyCount);
         }
@@ -566,9 +570,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File dn2id has malformed key %s.%n",
+            TRACER.debugError("File dn2id has malformed key %s.%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -584,9 +588,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File dn2id has malformed ID for DN <%s>:%n%s%n",
+            TRACER.debugError("File dn2id has malformed ID for DN <%s>:%n%s%n",
                        dn.toNormalizedString(),
                        StaticUtils.bytesToHex(data.getData()));
           }
@@ -603,7 +607,7 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           continue;
         }
@@ -613,7 +617,7 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugError("File dn2id has DN <%s> referencing unknown " +
+            TRACER.debugError("File dn2id has DN <%s> referencing unknown " +
                 "ID %d%n", dn.toNormalizedString(), entryID.longValue());
           }
         }
@@ -624,7 +628,7 @@
             errorCount++;
             if (debugEnabled())
             {
-              debugError("File dn2id has DN <%s> referencing entry " +
+              TRACER.debugError("File dn2id has DN <%s> referencing entry " +
                   "with wrong DN <%s>%n", dn.toNormalizedString(),
                                           entry.getDN().toNormalizedString());
             }
@@ -670,9 +674,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2children has malformed ID %s%n",
+            TRACER.debugError("File id2children has malformed ID %s%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -690,9 +694,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2children has malformed ID list " +
+            TRACER.debugError("File id2children has malformed ID list " +
                 "for ID %s:%n%s%n", entryID,
                                     StaticUtils.bytesToHex(data.getData()));
           }
@@ -712,7 +716,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
             errorCount++;
             continue;
@@ -723,7 +727,7 @@
             errorCount++;
             if (debugEnabled())
             {
-              debugError("File id2children has unknown ID %d%n",
+              TRACER.debugError("File id2children has unknown ID %d%n",
                          entryID.longValue());
             }
             continue;
@@ -740,7 +744,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               errorCount++;
               continue;
@@ -751,7 +755,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("File id2children has ID %d referencing " +
+                TRACER.debugError("File id2children has ID %d referencing " +
                     "unknown ID %d%n", entryID.longValue(), id.longValue());
               }
               continue;
@@ -764,7 +768,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("File id2children has ID %d with DN <%s> " +
+                TRACER.debugError("File id2children has ID %d with DN <%s> " +
                     "referencing ID %d with non-child DN <%s>%n",
                            entryID.longValue(), entry.getDN().toString(),
                            id.longValue(), childEntry.getDN().toString());
@@ -812,9 +816,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2subtree has malformed ID %s%n",
+            TRACER.debugError("File id2subtree has malformed ID %s%n",
                        StaticUtils.bytesToHex(key.getData()));
           }
           continue;
@@ -831,9 +835,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2subtree has malformed ID list " +
+            TRACER.debugError("File id2subtree has malformed ID list " +
                 "for ID %s:%n%s%n", entryID,
                                     StaticUtils.bytesToHex(data.getData()));
           }
@@ -853,7 +857,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
             errorCount++;
             continue;
@@ -864,7 +868,7 @@
             errorCount++;
             if (debugEnabled())
             {
-              debugError("File id2subtree has unknown ID %d%n",
+              TRACER.debugError("File id2subtree has unknown ID %d%n",
                          entryID.longValue());
             }
             continue;
@@ -881,7 +885,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               errorCount++;
               continue;
@@ -892,7 +896,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("File id2subtree has ID %d referencing " +
+                TRACER.debugError("File id2subtree has ID %d referencing " +
                     "unknown ID %d%n", entryID.longValue(), id.longValue());
               }
               continue;
@@ -903,7 +907,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("File id2subtree has ID %d with DN <%s> " +
+                TRACER.debugError("File id2subtree has ID %d with DN <%s> " +
                     "referencing ID %d with non-subordinate " +
                     "DN <%s>%n",
                            entryID.longValue(), entry.getDN().toString(),
@@ -1020,9 +1024,9 @@
           errorCount++;
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("Malformed ID list: %s%n%s",
+            TRACER.debugError("Malformed ID list: %s%n%s",
                        StaticUtils.bytesToHex(data.getData()),
                        keyDump(index, key.getData()));
           }
@@ -1069,7 +1073,7 @@
                   errorCount++;
                   if(debugEnabled())
                   {
-                    debugError("Reversed ordering of index keys " +
+                    TRACER.debugError("Reversed ordering of index keys " +
                         "(keys dumped in the order found in database)%n" +
                         "Key 1:%n%s%nKey 2:%n%s",
                                keyDump(index, thisValue.value()),
@@ -1082,9 +1086,9 @@
                   errorCount++;
                   if(debugEnabled())
                   {
-                    debugError("Duplicate index keys%nKey 1:%n%s%nKey2:%n%s",
-                               keyDump(index, thisValue.value()),
-                               keyDump(index,previousValue.value()));
+                    TRACER.debugError("Duplicate index keys%nKey 1:%n%s%n" +
+                        "Key2:%n%s", keyDump(index, thisValue.value()),
+                                     keyDump(index,previousValue.value()));
                   }
                   continue;
                 }
@@ -1115,7 +1119,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("Malformed value%n%s", keyDump(index, value));
+                TRACER.debugError("Malformed value%n%s", keyDump(index, value));
               }
               continue;
           }
@@ -1127,7 +1131,7 @@
             {
               if (debugEnabled())
               {
-                debugError("Duplicate reference to ID %d%n%s",
+                TRACER.debugError("Duplicate reference to ID %d%n%s",
                            id.longValue(), keyDump(index, key.getData()));
               }
             }
@@ -1142,7 +1146,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               errorCount++;
               continue;
@@ -1153,7 +1157,7 @@
               errorCount++;
               if (debugEnabled())
               {
-                debugError("Reference to unknown ID %d%n%s",
+                TRACER.debugError("Reference to unknown ID %d%n%s",
                            id.longValue(), keyDump(index, key.getData()));
               }
               continue;
@@ -1198,7 +1202,7 @@
                 errorCount++;
                 if (debugEnabled())
                 {
-                  debugError("Reference to entry " +
+                  TRACER.debugError("Reference to entry " +
                       "<%s> which does not match the value%n%s",
                              entry.getDN(), keyDump(index, value));
                 }
@@ -1208,7 +1212,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1262,7 +1266,7 @@
       {
         if (debugEnabled())
         {
-          debugError("File dn2id is missing key %s.%n",
+          TRACER.debugError("File dn2id is missing key %s.%n",
                      dn.toNormalizedString());
         }
         errorCount++;
@@ -1271,7 +1275,7 @@
       {
         if (debugEnabled())
         {
-          debugError("File dn2id has ID %d instead of %d for key %s.%n",
+          TRACER.debugError("File dn2id has ID %d instead of %d for key %s.%n",
                      id.longValue(),
                      entryID.longValue(),
                      dn.toNormalizedString());
@@ -1283,9 +1287,9 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-        debugError("File dn2id has error reading key %s: %s.%n",
+        TRACER.debugError("File dn2id has error reading key %s: %s.%n",
                    dn.toNormalizedString(),
                    e.getMessage());
       }
@@ -1303,7 +1307,7 @@
         {
           if (debugEnabled())
           {
-            debugError("File dn2id is missing key %s.%n",
+            TRACER.debugError("File dn2id is missing key %s.%n",
                        parentDN.toNormalizedString());
           }
           errorCount++;
@@ -1313,9 +1317,9 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-          debugError("File dn2id has error reading key %s: %s.%n",
+          TRACER.debugError("File dn2id has error reading key %s: %s.%n",
                      parentDN.toNormalizedString(),
                      e.getMessage());
         }
@@ -1345,7 +1349,7 @@
         {
           if (debugEnabled())
           {
-            debugError("File dn2id is missing key %s.%n",
+            TRACER.debugError("File dn2id is missing key %s.%n",
                        parentDN.toNormalizedString());
           }
           errorCount++;
@@ -1355,9 +1359,9 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-          debugError("File dn2id has error reading key %s: %s.",
+          TRACER.debugError("File dn2id has error reading key %s: %s.",
                      parentDN.toNormalizedString(),
                      e.getMessage());
         }
@@ -1373,7 +1377,7 @@
           {
             if (debugEnabled())
             {
-              debugError("File id2children is missing ID %d " +
+              TRACER.debugError("File id2children is missing ID %d " +
                   "for key %d.%n",
                          entryID.longValue(), parentID.longValue());
             }
@@ -1388,9 +1392,9 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2children has error reading key %d: %s.",
+            TRACER.debugError("File id2children has error reading key %d: %s.",
                        parentID.longValue(), e.getMessage());
           }
           errorCount++;
@@ -1417,7 +1421,7 @@
         {
           if (debugEnabled())
           {
-            debugError("File dn2id is missing key %s.%n",
+            TRACER.debugError("File dn2id is missing key %s.%n",
                        dn.toNormalizedString());
           }
           errorCount++;
@@ -1427,9 +1431,9 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-          debugError("File dn2id has error reading key %s: %s.%n",
+          TRACER.debugError("File dn2id has error reading key %s: %s.%n",
                      dn.toNormalizedString(),
                      e.getMessage());
         }
@@ -1445,7 +1449,7 @@
           {
             if (debugEnabled())
             {
-              debugError("File id2subtree is missing ID %d " +
+              TRACER.debugError("File id2subtree is missing ID %d " +
                   "for key %d.%n",
                          entryID.longValue(), id.longValue());
             }
@@ -1460,9 +1464,9 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-            debugError("File id2subtree has error reading key %d: %s.%n",
+            TRACER.debugError("File id2subtree has error reading key %d: %s.%n",
                        id.longValue(), e.getMessage());
           }
           errorCount++;
@@ -1525,9 +1529,9 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-          debugError("Error normalizing values of attribute %s in " +
+          TRACER.debugError("Error normalizing values of attribute %s in " +
               "entry <%s>: %s.%n",
                      attrIndex.getAttributeType().toString(),
                      entry.getDN().toString(),
@@ -1569,7 +1573,7 @@
         {
           if (debugEnabled())
           {
-            debugError("Missing ID %d%n%s",
+            TRACER.debugError("Missing ID %d%n%s",
                        entryID.longValue(),
                        keyDump(presenceIndex, presenceKey.getData()));
           }
@@ -1584,9 +1588,9 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-          debugError("Error reading database: %s%n%s",
+          TRACER.debugError("Error reading database: %s%n%s",
                      e.getMessage(),
                      keyDump(presenceIndex, presenceKey.getData()));
         }
@@ -1615,7 +1619,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugError("Missing ID %d%n%s",
+                  TRACER.debugError("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(equalityIndex, normalizedBytes));
                 }
@@ -1630,9 +1634,9 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-                debugError("Error reading database: %s%n%s",
+                TRACER.debugError("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(equalityIndex, normalizedBytes));
               }
@@ -1657,7 +1661,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugError("Missing ID %d%n%s",
+                    TRACER.debugError("Missing ID %d%n%s",
                                entryID.longValue(),
                                keyDump(substringIndex, key.getData()));
                   }
@@ -1672,9 +1676,9 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-                  debugError("Error reading database: %s%n%s",
+                  TRACER.debugError("Error reading database: %s%n%s",
                              e.getMessage(),
                              keyDump(substringIndex, key.getData()));
                 }
@@ -1702,7 +1706,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugError("Missing ID %d%n%s",
+                  TRACER.debugError("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(orderingIndex, normalizedBytes));
                 }
@@ -1717,9 +1721,9 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-                debugError("Error reading database: %s%n%s",
+                TRACER.debugError("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(orderingIndex, normalizedBytes));
               }
@@ -1745,7 +1749,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugError("Missing ID %d%n%s",
+                  TRACER.debugError("Missing ID %d%n%s",
                              entryID.longValue(),
                              keyDump(orderingIndex, normalizedBytes));
                 }
@@ -1760,9 +1764,9 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
-                debugError("Error reading database: %s%n%s",
+                TRACER.debugError("Error reading database: %s%n%s",
                            e.getMessage(),
                            keyDump(approximateIndex, normalizedBytes));
               }
@@ -1877,7 +1881,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java
index 55d6452..6fbc337 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java
@@ -43,8 +43,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -58,6 +58,11 @@
  */
 public class RecurringTask
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -212,7 +217,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_RECURRINGTASK_CANNOT_LOAD_CLASS;
@@ -234,7 +239,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_RECURRINGTASK_CANNOT_INSTANTIATE_CLASS_AS_TASK;
@@ -255,7 +260,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       int    msgID   = MSGID_RECURRINGTASK_CANNOT_INITIALIZE_INTERNAL;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
index a45fcf8..ab55a9f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
@@ -54,8 +54,8 @@
 import org.opends.server.util.TimeThread;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.loggers.ErrorLogger;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
@@ -73,6 +73,10 @@
 public abstract class Task
        implements Comparable<Task>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
 
 
 
@@ -219,7 +223,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_TASK_CANNOT_PARSE_SCHEDULED_START_TIME;
@@ -253,7 +257,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_TASK_CANNOT_PARSE_ACTUAL_START_TIME;
@@ -287,7 +291,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_TASK_CANNOT_PARSE_COMPLETION_TIME;
@@ -1055,7 +1059,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       setTaskState(TaskState.STOPPED_BY_ERROR);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskBackend.java
index 8e8dd38..3c75070 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskBackend.java
@@ -59,8 +59,8 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -80,6 +80,11 @@
        extends Backend
        implements ConfigurationChangeListener<TaskBackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current configuration state.
   private TaskBackendCfg currentConfig;
 
@@ -180,7 +185,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This should never happen.
@@ -201,7 +206,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This should never happen.
@@ -253,7 +258,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
@@ -289,7 +294,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -305,7 +310,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -317,7 +322,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -1130,7 +1135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_TASKBE_ERROR_GETTING_BACKING_FILE;
@@ -1201,7 +1206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_TASKBE_ERROR_GETTING_BACKING_FILE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
index 161d1c0..bcd30ef 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -66,9 +66,9 @@
 import org.opends.server.util.TimeThread;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -87,6 +87,11 @@
        implements AlertGenerator
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -558,7 +563,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               int msgID = MSGID_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION;
@@ -641,7 +646,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -653,7 +658,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -714,7 +719,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -733,7 +738,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -945,7 +950,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, le);
+            TRACER.debugCaught(DebugLogLevel.ERROR, le);
           }
 
           if (le.canContinueReading())
@@ -968,7 +973,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
 
@@ -1019,7 +1024,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               int msgID =
@@ -1048,7 +1053,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               int    msgID   = MSGID_TASKSCHED_CANNOT_SCHEDULE_TASK_FROM_ENTRY;
@@ -1075,7 +1080,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
 
       int msgID = MSGID_TASKSCHED_ERROR_READING_TASK_BACKING_FILE;
@@ -1132,7 +1137,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_CREATE_BACKING_FILE;
@@ -1144,7 +1149,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
 
@@ -1215,7 +1220,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -1233,7 +1238,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_TASKSCHED_CANNOT_RENAME_CURRENT_BACKING_FILE;
@@ -1259,7 +1264,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_TASKSCHED_CANNOT_RENAME_NEW_BACKING_FILE;
@@ -1278,7 +1283,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_WRITE_BACKING_FILE;
@@ -1294,7 +1299,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
 
@@ -1310,7 +1315,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_WRITE_BACKING_FILE;
@@ -1836,7 +1841,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_LOAD_CLASS;
@@ -1858,7 +1863,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_INSTANTIATE_CLASS_AS_TASK;
@@ -1877,7 +1882,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       int    msgID   = MSGID_TASKSCHED_CANNOT_INITIALIZE_INTERNAL;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskThread.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskThread.java
index 3929d32..0b75daf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskThread.java
@@ -31,8 +31,8 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.types.ErrorLogSeverity;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -49,6 +49,11 @@
 public class TaskThread
        extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -147,7 +152,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -181,7 +186,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ie);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ie);
           }
         }
 
@@ -197,7 +202,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_TASK_EXECUTE_FAILED;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/ConfigEntry.java b/opendj-sdk/opends/src/server/org/opends/server/config/ConfigEntry.java
index 85ff2fb..b0ae635 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/ConfigEntry.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/ConfigEntry.java
@@ -47,8 +47,8 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -62,6 +62,11 @@
  */
 public class ConfigEntry
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -358,7 +363,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       conflictingChild = null;
@@ -428,7 +433,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_ENTRY_CANNOT_REMOVE_CHILD;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/DNConfigAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/config/DNConfigAttribute.java
index da7e202..f393d96 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/DNConfigAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/DNConfigAttribute.java
@@ -48,8 +48,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -61,6 +61,11 @@
 public class DNConfigAttribute
        extends ConfigAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -582,7 +587,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       rejectReason.append(getMessage(MSGID_CONFIG_ATTR_DN_CANNOT_PARSE,
@@ -676,7 +681,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE;
@@ -854,7 +859,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE;
@@ -927,7 +932,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE;
@@ -1219,7 +1224,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE;
@@ -1264,7 +1269,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int    msgID   = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE;
@@ -1282,7 +1287,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ce);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
           }
 
           throw ce;
@@ -1291,7 +1296,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_ATTR_INVALID_DN_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/IntegerConfigAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/config/IntegerConfigAttribute.java
index a47a39f..cee978a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/IntegerConfigAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/IntegerConfigAttribute.java
@@ -47,8 +47,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -62,6 +62,11 @@
 public class IntegerConfigAttribute
        extends ConfigAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -811,7 +816,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       rejectReason.append(getMessage(MSGID_CONFIG_ATTR_INVALID_INT_VALUE,
@@ -903,7 +908,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE;
@@ -1509,7 +1514,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE;
@@ -1570,7 +1575,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ce);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
         }
 
         throw ce;
@@ -1579,7 +1584,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
index 631451c..1b71292 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/IntegerWithUnitConfigAttribute.java
@@ -47,9 +47,9 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -70,6 +70,11 @@
 public class IntegerWithUnitConfigAttribute
        extends ConfigAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -575,7 +580,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_ATTR_COULD_NOT_PARSE_INT_COMPONENT;
@@ -697,7 +702,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       rejectReason.append(getMessage(MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/JMXMBean.java b/opendj-sdk/opends/src/server/org/opends/server/config/JMXMBean.java
index f9f65f8..a77188b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/JMXMBean.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/JMXMBean.java
@@ -67,9 +67,9 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -97,6 +97,11 @@
        implements DynamicMBean, DirectoryServerMBean
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME = "org.opends.server.config.JMXMBean";
@@ -174,7 +179,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
           int msgID = MSGID_CONFIG_JMX_CANNOT_REGISTER_MBEAN;
@@ -220,7 +225,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
                 }
 
@@ -230,7 +235,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
                 e.printStackTrace();
 
@@ -619,7 +624,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_JMX_CANNOT_GET_ATTRIBUTE;
@@ -657,7 +662,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_JMX_ATTR_NO_ATTR;
@@ -700,7 +705,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_JMX_ATTR_NO_ATTR;
@@ -723,7 +728,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       logError(
           ErrorLogCategory.CONFIGURATION,
@@ -781,7 +786,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_JMX_CANNOT_GET_CONFIG_ENTRY;
@@ -894,7 +899,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -980,7 +985,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(
@@ -1042,7 +1047,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.MILD_ERROR,
@@ -1091,7 +1096,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, me);
+              TRACER.debugCaught(DebugLogLevel.ERROR, me);
             }
 
             throw me;
@@ -1100,7 +1105,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             throw new MBeanException(e);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
index 804f99d..f1bdabb 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/MultiChoiceConfigAttribute.java
@@ -47,9 +47,9 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -62,6 +62,11 @@
 public class MultiChoiceConfigAttribute
        extends ConfigAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -1228,7 +1233,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ce);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
           }
 
           throw ce;
@@ -1237,7 +1242,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_ATTR_INVALID_STRING_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/config/StringConfigAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/config/StringConfigAttribute.java
index d2b530c..d346cd4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/config/StringConfigAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/config/StringConfigAttribute.java
@@ -46,9 +46,9 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -61,6 +61,11 @@
 public class StringConfigAttribute
        extends ConfigAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -1117,7 +1122,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ce);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
           }
 
           throw ce;
@@ -1126,7 +1131,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_ATTR_INVALID_STRING_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/AccountUsableResponseControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/AccountUsableResponseControl.java
index c28ac2c..28980ba 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/AccountUsableResponseControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/AccountUsableResponseControl.java
@@ -41,8 +41,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -71,6 +71,11 @@
 public class AccountUsableResponseControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -566,7 +571,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR;
@@ -577,7 +582,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/EntryChangeNotificationControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
index 0314f5c..829d202 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/EntryChangeNotificationControl.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -59,6 +59,11 @@
 public class EntryChangeNotificationControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -310,7 +315,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ECN_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/GetEffectiveRights.java b/opendj-sdk/opends/src/server/org/opends/server/controls/GetEffectiveRights.java
index 24f8777..358e7d0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/GetEffectiveRights.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/GetEffectiveRights.java
@@ -38,8 +38,8 @@
 import org.opends.server.core.DirectoryServer;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -74,6 +74,11 @@
  *
  **/
 public class GetEffectiveRights extends Control {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   //The DN representing the authzId. May be null.
   private DN authzDN=null;
@@ -200,7 +205,7 @@
       }
     } catch (ASN1Exception e) {
          if (debugEnabled()) {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
          }
 
          int msgID = MSGID_GETEFFECTIVERIGHTS_DECODE_ERROR;
@@ -208,7 +213,7 @@
          throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, msgID, message);
     } catch (DirectoryException de) {
         if (debugEnabled()) {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int msgID  = MSGID_CANNOT_DECODE_GETEFFECTIVERIGHTS_AUTHZID_DN;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPAssertionRequestControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPAssertionRequestControl.java
index e6bf289..9d4920f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPAssertionRequestControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPAssertionRequestControl.java
@@ -39,8 +39,8 @@
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.SearchFilter;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -57,6 +57,11 @@
 public class LDAPAssertionRequestControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -170,7 +175,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_LDAPASSERT_INVALID_CONTROL_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
index 5c4b060..7207ba3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadRequestControl.java
@@ -43,8 +43,8 @@
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.ObjectClass;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -62,6 +62,11 @@
 public class LDAPPostReadRequestControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -220,7 +225,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_POSTREADREQ_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
index 43b9238..d919382 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPostReadResponseControl.java
@@ -38,8 +38,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -54,6 +54,11 @@
 public class LDAPPostReadResponseControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -161,7 +166,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_POSTREADRESP_CANNOT_DECODE_VALUE;
@@ -173,7 +178,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
       int    msgID   = MSGID_POSTREADRESP_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
index f0901d1..b40ad42 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadRequestControl.java
@@ -44,8 +44,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -62,6 +62,11 @@
 public class LDAPPreReadRequestControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -220,7 +225,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_PREREADREQ_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
index cfe1945..555d155 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/LDAPPreReadResponseControl.java
@@ -38,8 +38,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -54,6 +54,11 @@
 public class LDAPPreReadResponseControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -161,7 +166,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_PREREADRESP_CANNOT_DECODE_VALUE;
@@ -173,7 +178,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
       int    msgID   = MSGID_PREREADRESP_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesControl.java
index 9de2df9..51968cc 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesControl.java
@@ -40,8 +40,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -58,6 +58,11 @@
 public class MatchedValuesControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -188,7 +193,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_MATCHEDVALUES_CANNOT_DECODE_VALUE_AS_SEQUENCE;
@@ -257,7 +262,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesFilter.java b/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesFilter.java
index 9c17f81..3399fd9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesFilter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/MatchedValuesFilter.java
@@ -49,8 +49,8 @@
 import org.opends.server.types.RawFilter;
 import org.opends.server.util.Validator;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -69,6 +69,11 @@
  */
 public class MatchedValuesFilter
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -782,7 +787,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MVFILTER_CANNOT_DECODE_AVA;
@@ -884,7 +889,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MVFILTER_CANNOT_DECODE_SUBSTRINGS;
@@ -907,7 +912,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MVFILTER_CANNOT_DECODE_PRESENT_TYPE;
@@ -1004,7 +1009,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MVFILTER_CANNOT_DECODE_EXTENSIBLE_MATCH;
@@ -1250,7 +1255,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1328,7 +1333,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           normalizedSubAny = null;
@@ -1391,7 +1396,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1625,7 +1630,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1654,7 +1659,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1681,7 +1686,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1708,7 +1713,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1743,7 +1748,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1783,7 +1788,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
@@ -1806,7 +1811,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java
index 9a35056..9e7644c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.controls;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -60,6 +60,11 @@
  */
 public class PagedResultsControl extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -128,7 +133,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_PAGED_RESULTS_DECODE_SEQUENCE;
@@ -152,7 +157,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_PAGED_RESULTS_DECODE_SIZE;
@@ -168,7 +173,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_PAGED_RESULTS_DECODE_COOKIE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java
index 85ab72e..9ab444c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java
@@ -34,8 +34,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -52,6 +52,11 @@
 public class PasswordExpiringControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -158,7 +163,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWEXPIRING_CANNOT_DECODE_SECONDS_UNTIL_EXPIRATION;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
index 0a3b680..72d70aa 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
@@ -40,8 +40,8 @@
 import org.opends.server.types.Control;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -58,6 +58,11 @@
 public class PasswordPolicyResponseControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -323,7 +328,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
 
       int    msgID   = MSGID_PWPOLICYRES_DECODE_ERROR;
@@ -334,7 +339,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWPOLICYRES_DECODE_ERROR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java b/opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java
index e1ab451..c60dc0d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java
@@ -40,8 +40,8 @@
 import org.opends.server.types.Control;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -58,6 +58,11 @@
 public class PersistentSearchControl
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -243,7 +248,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PSEARCH_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java b/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
index 2153919..1f61c81 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
@@ -45,8 +45,8 @@
 import org.opends.server.types.LockManager;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -68,6 +68,11 @@
 public class ProxiedAuthV1Control
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -223,7 +228,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PROXYAUTH1_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java b/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
index 278df15..be37512 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
@@ -44,8 +44,8 @@
 import org.opends.server.types.LockManager;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -66,6 +66,11 @@
 public class ProxiedAuthV2Control
        extends Control
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -163,7 +168,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
 
         int    msgID   = MSGID_PROXYAUTH2_CANNOT_DECODE_VALUE;
@@ -176,7 +181,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PROXYAUTH2_CANNOT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java
index 1099b57..d7923b2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java
@@ -26,10 +26,10 @@
  */
 package org.opends.server.core;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -68,6 +68,11 @@
 public final class AccessControlConfigManager
        implements AlertGenerator
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Fully qualified class name.
   private static final String CLASS_NAME =
     "org.opends.server.core.AccessControlConfigManager";
@@ -234,7 +239,7 @@
       } catch (Exception e) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_AUTHZ_UNABLE_TO_INSTANTIATE_HANDLER;
@@ -461,7 +466,7 @@
         } catch (ClassNotFoundException e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_AUTHZ_UNABLE_TO_LOAD_CLASS;
@@ -472,7 +477,7 @@
         } catch (ClassCastException e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_AUTHZ_BAD_CLASS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java
index fd411d3..ea10a1a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java
@@ -93,10 +93,10 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -114,6 +114,11 @@
        implements PreParseAddOperation, PreOperationAddOperation,
                   PostOperationAddOperation, PostResponseAddOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of response controls to send to the client.
   private ArrayList<Control> responseControls;
 
@@ -833,7 +838,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -1069,7 +1074,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1101,7 +1106,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -1137,7 +1142,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
                   break;
                 }
@@ -1158,7 +1163,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             setResultCode(de.getResultCode());
@@ -1401,7 +1406,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 int msgID = MSGID_ADD_INVALID_PWPOLICY_DN_SYNTAX;
@@ -1438,7 +1443,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             setResponseData(de);
@@ -1657,7 +1662,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1686,7 +1691,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -1719,7 +1724,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1757,7 +1762,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1777,7 +1782,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1835,7 +1840,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1855,7 +1860,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -2051,7 +2056,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, de);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, de);
                   }
 
                   logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -2124,7 +2129,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             setResultCode(de.getResultCode());
@@ -2138,7 +2143,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, coe);
+              TRACER.debugCaught(DebugLogLevel.ERROR, coe);
             }
 
             CancelResult cancelResult = coe.getCancelResult();
@@ -2180,7 +2185,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -2238,7 +2243,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_ADD_ERROR_NOTIFYING_CHANGE_LISTENER;
@@ -2276,7 +2281,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_ADD_ERROR_NOTIFYING_PERSISTENT_SEARCH;
@@ -2542,7 +2547,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java
index c7f6dab..7547957 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java
@@ -42,10 +42,10 @@
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigConstants;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 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 static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.*;
@@ -70,6 +70,11 @@
      ConfigurationAddListener<BackendCfg>,
      ConfigurationDeleteListener<BackendCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -127,7 +132,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE;
@@ -196,7 +201,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE;
@@ -264,7 +269,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK;
@@ -286,7 +291,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE;
@@ -315,7 +320,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e2);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
             }
 
             msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
@@ -347,7 +352,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND;
@@ -427,7 +432,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           unacceptableReason.add(de.getMessage());
@@ -445,7 +450,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           unacceptableReason.add(de.getMessage());
@@ -476,7 +481,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE;
@@ -560,7 +565,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e2);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
             }
 
             int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
@@ -584,7 +589,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE;
@@ -671,7 +676,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE;
@@ -739,7 +744,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK;
@@ -765,7 +770,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE;
@@ -792,7 +797,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
 
           msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
@@ -825,7 +830,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND;
@@ -908,7 +913,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE;
@@ -1070,7 +1075,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE;
@@ -1114,7 +1119,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK;
@@ -1141,7 +1146,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE;
@@ -1168,7 +1173,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
 
         msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
@@ -1201,7 +1206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND;
@@ -1297,7 +1302,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -1329,7 +1334,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
 
         int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java
index 23dda16..ce1f22a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java
@@ -74,9 +74,9 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -101,6 +101,11 @@
              implements PreParseBindOperation, PreOperationBindOperation,
                         PostOperationBindOperation, PostResponseBindOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The credentials used for SASL authentication.
   private ASN1OctetString saslCredentials;
 
@@ -1031,7 +1036,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -1184,7 +1189,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -1477,7 +1482,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID = MSGID_BIND_CANNOT_PROCESS_USER_SIZE_LIMIT;
@@ -1523,7 +1528,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID = MSGID_BIND_CANNOT_PROCESS_USER_TIME_LIMIT;
@@ -1569,7 +1574,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID =
@@ -1652,7 +1657,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_BIND_OPERATION_PASSWORD_VALIDATION_EXCEPTION;
@@ -1743,7 +1748,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               setResponseData(de);
@@ -1997,7 +2002,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID = MSGID_BIND_CANNOT_PROCESS_USER_SIZE_LIMIT;
@@ -2041,7 +2046,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID = MSGID_BIND_CANNOT_PROCESS_USER_TIME_LIMIT;
@@ -2085,7 +2090,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, e);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, e);
                       }
 
                       int msgID =
@@ -2169,7 +2174,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       setResponseData(de);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java
index 8997a4a..1b156de 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java
@@ -68,8 +68,8 @@
 
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -88,6 +88,11 @@
        implements PreParseCompareOperation, PreOperationCompareOperation,
                   PostOperationCompareOperation, PostResponseCompareOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for this compare operation.
   private AttributeType attributeType;
 
@@ -607,7 +612,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -693,7 +698,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
                 break;
               }
@@ -708,7 +713,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -744,7 +749,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -773,7 +778,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -813,7 +818,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -833,7 +838,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -891,7 +896,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -911,7 +916,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1175,7 +1180,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
index bc4cff5..aaef4f4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
@@ -28,8 +28,8 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -68,6 +68,11 @@
     ConfigurationAddListener<ConnectionHandlerCfg>,
     ConfigurationDeleteListener<ConnectionHandlerCfg>,
     ConfigurationChangeListener<ConnectionHandlerCfg> {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   // The mapping between configuration entry DNs and their
   // corresponding connection handler implementations.
@@ -118,7 +123,7 @@
       } catch (ConfigException e) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         messages.add(e.getMessage());
@@ -126,7 +131,7 @@
       } catch (Exception e) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
@@ -179,7 +184,7 @@
         } catch (ConfigException e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           messages.add(e.getMessage());
@@ -187,7 +192,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
@@ -379,7 +384,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
@@ -403,7 +408,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
@@ -438,7 +443,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
@@ -459,7 +464,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_CONNHANDLER_CANNOT_INITIALIZE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java
index 7df95c2..82b996e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java
@@ -54,10 +54,10 @@
 import org.opends.server.types.WritabilityMode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -73,6 +73,11 @@
 public class CoreConfigManager
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -166,7 +171,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -210,7 +215,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -250,7 +255,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -293,7 +298,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -353,7 +358,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -415,7 +420,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -456,7 +461,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -498,7 +503,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -538,7 +543,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -575,7 +580,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -613,7 +618,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -651,7 +656,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -710,7 +715,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -749,7 +754,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -796,7 +801,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
@@ -834,7 +839,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
          MSGID_CONFIG_CORE_REJECT_UNAUTHENTICATED_REQUESTS_INVALID,
@@ -884,7 +889,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.MILD_ERROR,
@@ -916,7 +921,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -949,7 +954,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -981,7 +986,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1016,7 +1021,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1055,7 +1060,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1095,7 +1100,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1128,7 +1133,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1161,7 +1166,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1193,7 +1198,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1226,7 +1231,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1260,7 +1265,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1299,7 +1304,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1331,7 +1336,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1364,7 +1369,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred.  Log a message and continue.
@@ -1416,7 +1421,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1443,7 +1448,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1470,7 +1475,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1502,7 +1507,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1535,7 +1540,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1569,7 +1574,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1596,7 +1601,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1623,7 +1628,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1663,7 +1668,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1691,7 +1696,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1719,7 +1724,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1752,7 +1757,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1778,7 +1783,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1805,7 +1810,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1853,7 +1858,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so the provided value must not be valid.
@@ -1919,7 +1924,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -1958,7 +1963,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -1999,7 +2004,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2046,7 +2051,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2104,7 +2109,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2162,7 +2167,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2207,7 +2212,7 @@
       // error message and use the default.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (resultCode == ResultCode.SUCCESS)
@@ -2248,7 +2253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2288,7 +2293,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2325,7 +2330,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2362,7 +2367,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2399,7 +2404,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2453,7 +2458,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2489,7 +2494,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2526,7 +2531,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
@@ -2573,7 +2578,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An error occurred, so we will not allow this configuration change to
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java
index fa4bad3..9457386 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java
@@ -74,10 +74,10 @@
 
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -94,6 +94,11 @@
        implements PreParseDeleteOperation, PreOperationDeleteOperation,
                   PostOperationDeleteOperation, PostResponseDeleteOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -558,7 +563,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -620,7 +625,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
 
@@ -631,7 +636,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -660,7 +665,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -707,7 +712,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -736,7 +741,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -769,7 +774,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -807,7 +812,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -827,7 +832,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -885,7 +890,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -905,7 +910,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1122,7 +1127,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1195,7 +1200,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -1209,7 +1214,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, coe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, coe);
           }
 
           CancelResult cancelResult = coe.getCancelResult();
@@ -1241,7 +1246,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1295,7 +1300,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_DELETE_ERROR_NOTIFYING_CHANGE_LISTENER;
@@ -1333,7 +1338,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_DELETE_ERROR_NOTIFYING_PERSISTENT_SEARCH;
@@ -1375,7 +1380,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
index 4cad552..68a99af 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -85,12 +85,11 @@
 import org.opends.server.util.args.StringArgument;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import org.opends.server.loggers.debug.TextDebugLogPublisher;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -110,6 +109,11 @@
 public class DirectoryServer
        implements Thread.UncaughtExceptionHandler, AlertGenerator
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
     /**
     * The fully-qualified name of this class.
     */
@@ -817,7 +821,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_CREATE_MBEAN_SERVER;
@@ -868,7 +872,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_LOAD_CONFIG_HANDLER_CLASS;
@@ -884,7 +888,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_INSTANTIATE_CONFIG_HANDLER;
@@ -902,7 +906,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -911,7 +915,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_INITIALIZE_CONFIG_HANDLER;
@@ -997,7 +1001,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_CANNOT_ACQUIRE_EXCLUSIVE_SERVER_LOCK;
@@ -1205,7 +1209,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1227,7 +1231,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1249,7 +1253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1272,7 +1276,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1294,7 +1298,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1317,7 +1321,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1340,7 +1344,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1363,7 +1367,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1385,7 +1389,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1407,7 +1411,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1430,7 +1434,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1454,7 +1458,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1477,7 +1481,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1499,7 +1503,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1522,7 +1526,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1544,7 +1548,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1566,7 +1570,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1588,7 +1592,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1611,7 +1615,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1634,7 +1638,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1657,7 +1661,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1680,7 +1684,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1703,7 +1707,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_MATCHING_RULE;
@@ -1735,7 +1739,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1756,7 +1760,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1777,7 +1781,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1799,7 +1803,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1820,7 +1824,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1842,7 +1846,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1863,7 +1867,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1884,7 +1888,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1905,7 +1909,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1926,7 +1930,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -1947,7 +1951,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_BOOTSTRAP_SYNTAX;
@@ -2099,7 +2103,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -2111,7 +2115,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -2120,7 +2124,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_INITIALIZE_CONFIG_HANDLER;
@@ -2207,7 +2211,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_GET_ROOT_DSE_CONFIG_ENTRY;
@@ -3384,7 +3388,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -3409,7 +3413,7 @@
           // This should never happen.
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -4599,7 +4603,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -5262,7 +5266,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -5298,7 +5302,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7058,7 +7062,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_WORKQ_CANNOT_PARSE_DN;
@@ -7102,7 +7106,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_WORKQ_CANNOT_LOAD;
@@ -7119,7 +7123,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_WORKQ_CANNOT_INSTANTIATE;
@@ -7501,7 +7505,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7530,7 +7534,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7584,7 +7588,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7613,7 +7617,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7668,7 +7672,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7697,7 +7701,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7752,7 +7756,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7781,7 +7785,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7864,7 +7868,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7918,7 +7922,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7948,7 +7952,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -7968,7 +7972,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -7986,7 +7990,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -8021,7 +8025,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -8061,7 +8065,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
 
           msgID = MSGID_SHUTDOWN_CANNOT_RELEASE_SHARED_BACKEND_LOCK;
@@ -8076,7 +8080,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -8098,7 +8102,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_CANNOT_RELEASE_EXCLUSIVE_SERVER_LOCK;
@@ -8525,7 +8529,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This could theoretically happen if an alert needs to be sent before the
@@ -8587,7 +8591,7 @@
   {
     if (debugEnabled())
     {
-      debugCaught(DebugLogLevel.ERROR, exception);
+      TRACER.debugCaught(DebugLogLevel.ERROR, exception);
     }
 
     int    msgID   = MSGID_UNCAUGHT_THREAD_EXCEPTION;
@@ -8872,7 +8876,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CANNOT_ACQUIRE_EXCLUSIVE_SERVER_LOCK;
@@ -9008,7 +9012,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       int    msgID   = MSGID_DSCORE_CANNOT_BOOTSTRAP;
@@ -9032,7 +9036,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       int    msgID   = MSGID_DSCORE_CANNOT_START;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
index 8529924..e096f29 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
@@ -29,7 +29,8 @@
 
 import org.opends.server.api.DirectoryThread;
 
-import org.opends.server.loggers.debug.DebugLogger;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 
@@ -45,6 +46,11 @@
        extends DirectoryThread
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -69,7 +75,7 @@
    */
   public void run()
   {
-    DebugLogger.debugInfo(
+    TRACER.debugInfo(
         "Directory Server shutdown hook has been invoked.");
 
     DirectoryServer.shutDown(CLASS_NAME,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java
index cc06e6d..1f41ead 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java
@@ -41,10 +41,10 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -72,6 +72,11 @@
           ConfigurationAddListener    <EntryCacheCfg>,
           ConfigurationDeleteListener <EntryCacheCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current entry cache registered in the server
   private EntryCache _entryCache = null;
 
@@ -132,7 +137,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_ENTRYCACHE_CANNOT_INSTALL_DEFAULT_CACHE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java
index e708a31..de6c008 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java
@@ -53,8 +53,8 @@
 
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -71,6 +71,11 @@
        implements PreParseExtendedOperation, PreOperationExtendedOperation,
                   PostOperationExtendedOperation, PostResponseExtendedOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -709,7 +714,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
index 4351d91..2dc1ad8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
@@ -40,8 +40,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -68,6 +68,11 @@
      ConfigurationAddListener<ExtendedOperationHandlerCfg>,
      ConfigurationDeleteListener<ExtendedOperationHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -204,7 +209,7 @@
         } catch (ConfigException e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           messages.add(e.getMessage());
@@ -212,7 +217,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_CONFIG_EXTOP_INITIALIZATION_FAILED;
@@ -290,7 +295,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         messages.add(e.getMessage());
@@ -300,7 +305,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_EXTOP_INITIALIZATION_FAILED;
@@ -359,7 +364,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_EXTOP_INVALID_CLASS;
@@ -403,7 +408,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_EXTOP_INVALID_CLASS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
index 5fb29f9..d68a9b7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
@@ -68,10 +68,10 @@
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -92,6 +92,11 @@
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener,
                   BackendInitializationListener, ChangeNotificationListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -150,7 +155,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_CANNOT_GET_BASE;
@@ -357,7 +362,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -376,7 +381,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -394,7 +399,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS;
@@ -429,7 +434,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_ENABLED_VALUE;
@@ -548,7 +553,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INVALID_ENABLED_VALUE;
@@ -586,7 +591,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -630,7 +635,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_GROUP_INVALID_CLASS;
@@ -649,7 +654,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_GROUP_INITIALIZATION_FAILED;
@@ -739,7 +744,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -758,7 +763,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -777,7 +782,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_CLASS;
@@ -842,7 +847,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_GROUP_INVALID_ENABLED_VALUE;
@@ -919,7 +924,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INVALID_ENABLED_VALUE;
@@ -956,7 +961,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INVALID_CLASS_NAME;
@@ -979,7 +984,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INVALID_CLASS;
@@ -997,7 +1002,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_GROUP_INITIALIZATION_FAILED;
@@ -1097,7 +1102,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // FIXME -- Is there anything that we need to do here?
@@ -1118,7 +1123,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // FIXME -- Is there anything that we need to do here?
@@ -1140,7 +1145,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // FIXME -- Is there anything that we need to do here?
@@ -1158,7 +1163,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // FIXME -- Handle this.
@@ -1336,7 +1341,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // FIXME -- Do we need to do anything else?
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
index a696f29..8a40336 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
@@ -52,10 +52,10 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -72,6 +72,11 @@
 public class KeyManagerProviderConfigManager
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -121,7 +126,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_KEYMANAGER_CANNOT_GET_BASE;
@@ -259,7 +264,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -278,7 +283,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -296,7 +301,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS;
@@ -331,7 +336,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_ENABLED_VALUE;
@@ -439,7 +444,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_ENABLED_VALUE;
@@ -477,7 +482,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -521,7 +526,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS;
@@ -541,7 +546,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_KEYMANAGER_INITIALIZATION_FAILED;
@@ -628,7 +633,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -647,7 +652,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -666,7 +671,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS;
@@ -707,7 +712,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_ENABLED_VALUE;
@@ -814,7 +819,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_ENABLED_VALUE;
@@ -851,7 +856,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS_NAME;
@@ -874,7 +879,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INVALID_CLASS;
@@ -892,7 +897,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_KEYMANAGER_INITIALIZATION_FAILED;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java
index 459751c..1f3e0d8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java
@@ -37,8 +37,8 @@
 
 import org.opends.server.api.Backend;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -54,6 +54,11 @@
  */
 public class LockFileManager
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -127,7 +132,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_SHARED_FAILED_CREATE;
@@ -149,7 +154,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_SHARED_FAILED_OPEN;
@@ -180,7 +185,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_SHARED_FAILED_LOCK;
@@ -303,7 +308,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_EXCLUSIVE_FAILED_CREATE;
@@ -325,7 +330,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_EXCLUSIVE_FAILED_OPEN;
@@ -355,7 +360,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_FILELOCKER_LOCK_EXCLUSIVE_FAILED_LOCK;
@@ -464,7 +469,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_FILELOCKER_UNLOCK_EXCLUSIVE_FAILED_RELEASE;
@@ -481,7 +486,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // Even though we couldn't close the channel for some reason, this
@@ -512,7 +517,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int msgID = MSGID_FILELOCKER_UNLOCK_SHARED_FAILED_RELEASE;
@@ -529,7 +534,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // Even though we couldn't close the channel for some reason, this
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
index 86cda49..ae99da9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
@@ -41,8 +41,8 @@
 import org.opends.server.loggers.RetentionPolicy;
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -63,6 +63,11 @@
     ConfigurationDeleteListener<LogRetentionPolicyCfg>,
     ConfigurationChangeListener<LogRetentionPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * Initializes all the log retention policies.
@@ -134,14 +139,14 @@
     catch (ConfigException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       messages.add(e.getMessage());
       resultCode = DirectoryServer.getServerErrorResultCode();
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_CONFIG_RETENTION_POLICY_CANNOT_CREATE_POLICY;
       messages.add(getMessage(msgID, String.valueOf(config.dn().toString()),
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
index 80d82f1..f7ee8da 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
@@ -41,8 +41,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.config.ConfigException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -63,6 +63,11 @@
     ConfigurationDeleteListener<LogRotationPolicyCfg>,
     ConfigurationChangeListener<LogRotationPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * Initializes all the log rotation policies.
@@ -134,14 +139,14 @@
     catch (ConfigException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       messages.add(e.getMessage());
       resultCode = DirectoryServer.getServerErrorResultCode();
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_CONFIG_ROTATION_POLICY_CANNOT_CREATE_POLICY;
       messages.add(getMessage(msgID, String.valueOf(config.dn().toString()),
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java
index 883c998..8eebd8a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java
@@ -83,10 +83,10 @@
 
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -103,6 +103,11 @@
        implements PreParseModifyDNOperation, PreOperationModifyDNOperation,
                   PostOperationModifyDNOperation, PostResponseModifyDNOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether to delete the old RDN value from the entry.
   private boolean deleteOldRDN;
 
@@ -814,7 +819,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -835,7 +840,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -862,7 +867,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -972,7 +977,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         LockManager.unlock(entryDN, currentLock);
@@ -1028,7 +1033,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -1057,7 +1062,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               break;
             }
@@ -1091,7 +1096,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1137,7 +1142,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1166,7 +1171,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -1199,7 +1204,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1226,7 +1231,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1264,7 +1269,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1284,7 +1289,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1342,7 +1347,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1362,7 +1367,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1680,7 +1685,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
 
                   setResultCode(ResultCode.CONSTRAINT_VIOLATION);
@@ -1724,7 +1729,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
 
                   setResultCode(ResultCode.CONSTRAINT_VIOLATION);
@@ -1853,7 +1858,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1977,7 +1982,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -1991,7 +1996,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, coe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, coe);
           }
 
           CancelResult cancelResult = coe.getCancelResult();
@@ -2024,7 +2029,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -2078,7 +2083,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MODDN_ERROR_NOTIFYING_CHANGE_LISTENER;
@@ -2116,7 +2121,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MODDN_ERROR_NOTIFYING_PERSISTENT_SEARCH;
@@ -2158,7 +2163,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java
index abf4a3d..419f8c0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java
@@ -98,8 +98,9 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.ServerConstants.*;
@@ -116,6 +117,11 @@
        implements PreParseModifyOperation, PreOperationModifyOperation,
                   PostOperationModifyOperation, PostResponseModifyOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The raw, unprocessed entry DN as included by the client request.
   private ByteString rawEntryDN;
 
@@ -748,7 +754,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -774,7 +780,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, le);
+              TRACER.debugCaught(DebugLogLevel.ERROR, le);
             }
 
             setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -866,7 +872,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -899,7 +905,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
               break;
             }
@@ -941,7 +947,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -970,7 +976,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -1003,7 +1009,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1030,7 +1036,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1068,7 +1074,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1088,7 +1094,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1146,7 +1152,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, le);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, le);
                   }
 
                   setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1166,7 +1172,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1230,7 +1236,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -1263,7 +1269,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1542,7 +1548,7 @@
                     {
                       if (debugEnabled())
                       {
-                        debugCaught(DebugLogLevel.ERROR, de);
+                        TRACER.debugCaught(DebugLogLevel.ERROR, de);
                       }
 
                       setResultCode(de.getResultCode());
@@ -1625,7 +1631,7 @@
                             {
                               if (debugEnabled())
                               {
-                                debugCaught(DebugLogLevel.ERROR, de);
+                                TRACER.debugCaught(DebugLogLevel.ERROR, de);
                               }
 
                               setResultCode(de.getResultCode());
@@ -1672,7 +1678,7 @@
                             {
                               if (debugEnabled())
                               {
-                                debugCaught(DebugLogLevel.ERROR, de);
+                                TRACER.debugCaught(DebugLogLevel.ERROR, de);
                               }
 
                               setResultCode(de.getResultCode());
@@ -1849,7 +1855,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, de);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, de);
                   }
 
                   setResponseData(de);
@@ -1962,7 +1968,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, de);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, de);
                   }
 
                   setResponseData(de);
@@ -2175,7 +2181,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 setResultCode(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
@@ -2226,7 +2232,7 @@
                   {
                     if (debugEnabled())
                     {
-                      debugCaught(DebugLogLevel.ERROR, e);
+                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
                     }
 
                     setResultCode(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
@@ -2428,7 +2434,7 @@
           } catch (DirectoryException e) {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             setResponseData(e);
@@ -2587,7 +2593,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -2771,7 +2777,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           setResultCode(de.getResultCode());
@@ -2785,7 +2791,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, coe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, coe);
           }
 
           CancelResult cancelResult = coe.getCancelResult();
@@ -2817,7 +2823,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -2876,7 +2882,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MODIFY_ERROR_NOTIFYING_CHANGE_LISTENER;
@@ -2914,7 +2920,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_MODIFY_ERROR_NOTIFYING_PERSISTENT_SEARCH;
@@ -2956,7 +2962,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java
index bdd17ce..807ac4d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java
@@ -52,10 +52,10 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -72,6 +72,11 @@
 public class MonitorConfigManager
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -121,7 +126,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_MONITOR_CANNOT_GET_BASE;
@@ -259,7 +264,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -278,7 +283,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -296,7 +301,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS;
@@ -331,7 +336,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_ENABLED_VALUE;
@@ -437,7 +442,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_ENABLED_VALUE;
@@ -475,7 +480,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -519,7 +524,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS;
@@ -539,7 +544,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_MONITOR_INITIALIZATION_FAILED;
@@ -626,7 +631,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -645,7 +650,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -664,7 +669,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS;
@@ -729,7 +734,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_ENABLED_VALUE;
@@ -806,7 +811,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_ENABLED_VALUE;
@@ -843,7 +848,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS_NAME;
@@ -866,7 +871,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INVALID_CLASS;
@@ -884,7 +889,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_MONITOR_INITIALIZATION_FAILED;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java
index d709d67..14fea7d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java
@@ -54,8 +54,8 @@
 import org.opends.server.types.InitializationException;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -71,6 +71,11 @@
  */
 public class PasswordPolicy
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the entry containing the configuration for this password
   // policy.
   private final DN configEntryDN;
@@ -309,7 +314,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_ATTRIBUTE;
@@ -373,7 +378,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_DEFAULT_STORAGE_SCHEMES;
@@ -398,7 +403,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_DEPRECATED_STORAGE_SCHEMES;
@@ -447,7 +452,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_VALIDATORS;
@@ -492,7 +497,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_NOTIFICATION_HANDLERS;
@@ -547,7 +552,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_GENERATOR;
@@ -648,7 +653,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_REQUIRE_CHANGE_BY_TIME;
@@ -689,7 +694,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LAST_LOGIN_TIME_ATTR;
@@ -713,7 +718,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           msgID = MSGID_PWPOLICY_INVALID_LAST_LOGIN_TIME_FORMAT;
@@ -733,7 +738,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LAST_LOGIN_TIME_FORMAT;
@@ -761,7 +766,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             msgID = MSGID_PWPOLICY_INVALID_PREVIOUS_LAST_LOGIN_TIME_FORMAT;
@@ -783,7 +788,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PREVIOUS_LAST_LOGIN_TIME_FORMAT;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java
index febcd4f..464fe20 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java
@@ -36,8 +36,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -52,6 +52,11 @@
 public class PasswordPolicyConfig
         implements ConfigurationChangeListener<PasswordPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The password policy object corresponding to the configuration entry. The
@@ -93,7 +98,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       unacceptableReasons.add(ce.getMessage());
@@ -103,7 +108,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       unacceptableReasons.add(ie.getMessage());
@@ -136,7 +141,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
       ArrayList<String> messages = new ArrayList<String>();
       messages.add(ce.getMessage());
@@ -148,7 +153,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
       ArrayList<String> messages = new ArrayList<String>();
       messages.add(ie.getMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java
index 5cf0f70..8e444ae 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java
@@ -67,11 +67,8 @@
 import org.opends.server.util.TimeThread;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugWarning;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -85,6 +82,11 @@
  */
 public class PasswordPolicyState
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   // The user entry with which this state information is associated.
@@ -221,8 +223,8 @@
 
         if (debug)
         {
-          debugWarning("Could not determine password changed time for user %s.",
-                       userDNString);
+          TRACER.debugWarning("Could not determine password changed time for " +
+              "user %s.", userDNString);
         }
       }
     }
@@ -270,13 +272,13 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugError("Could not parse password policy subentry DN %s " +
-                 "for user %s: %s",
+            TRACER.debugError("Could not parse password policy subentry " +
+                "DN %s for user %s: %s",
                        v.getStringValue(), userDNString,
                        stackTraceToSingleLineString(e));
           }
@@ -293,7 +295,7 @@
         {
           if (debug)
           {
-            debugError("Password policy subentry %s for user %s " +
+            TRACER.debugError("Password policy subentry %s for user %s " +
                  "is not defined in the Directory Server.",
                        String.valueOf(subentryDN), userDNString);
           }
@@ -310,7 +312,7 @@
         {
             if (debugEnabled())
             {
-              debugInfo("Using password policy subentry %s for user %s.",
+              TRACER.debugInfo("Using password policy subentry %s for user %s.",
                         String.valueOf(subentryDN), userDNString);
             }
           }
@@ -324,7 +326,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Using the default password policy for user %s",
+        TRACER.debugInfo("Using the default password policy for user %s",
                   userDNString);
       }
     }
@@ -364,7 +366,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning null because attribute %s does not " +
+          TRACER.debugInfo("Returning null because attribute %s does not " +
               "exist in user entry %s",
                     attributeType.getNameOrOID(), userDNString);
         }
@@ -373,7 +375,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning value %s for user %s",
+          TRACER.debugInfo("Returning value %s for user %s",
                     stringValue, userDNString);
         }
       }
@@ -418,12 +420,12 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugWarning("Unable to decode value %s for attribute %s " +
+            TRACER.debugWarning("Unable to decode value %s for attribute %s " +
                  "in user entry %s: %s",
                          v.getStringValue(), attributeType.getNameOrOID(),
                          userDNString, stackTraceToSingleLineString(e));
@@ -446,7 +448,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning -1 because attribute %s does not " +
+          TRACER.debugInfo("Returning -1 because attribute %s does not " +
               "exist in user entry %s",
                     attributeType.getNameOrOID(), userDNString);
         }
@@ -493,12 +495,12 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             if (debug)
             {
-              debugWarning("Unable to decode value %s for attribute %s" +
+              TRACER.debugWarning("Unable to decode value %s for attribute %s" +
                    "in user entry %s: %s",
                            v.getStringValue(), attributeType.getNameOrOID(),
                            userDNString, stackTraceToSingleLineString(e));
@@ -521,7 +523,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning an empty list because attribute %s " +
+          TRACER.debugInfo("Returning an empty list because attribute %s " +
               "does not exist in user entry %s",
                     attributeType.getNameOrOID(), userDNString);
         }
@@ -565,8 +567,8 @@
           {
             if (debugEnabled())
             {
-              debugInfo("Attribute %s resolves to true for user entry %s",
-                        attributeType.getNameOrOID(), userDNString);
+              TRACER.debugInfo("Attribute %s resolves to true for user entry " +
+                  "%s", attributeType.getNameOrOID(), userDNString);
             }
           }
 
@@ -580,8 +582,8 @@
           {
             if (debugEnabled())
             {
-              debugInfo("Attribute %s resolves to false for user entry %s",
-                        attributeType.getNameOrOID(), userDNString);
+              TRACER.debugInfo("Attribute %s resolves to false for user " +
+                  "entry %s", attributeType.getNameOrOID(), userDNString);
             }
           }
 
@@ -590,7 +592,7 @@
 
         if (debug)
         {
-            debugError("Unable to resolve value %s for attribute %s " +
+            TRACER.debugError("Unable to resolve value %s for attribute %s " +
                  "in user entry %s as a Boolean.",
                        valueString, attributeType.getNameOrOID(),
                        userDNString);
@@ -609,7 +611,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning %s because attribute %s does not exist " +
+        TRACER.debugInfo("Returning %s because attribute %s does not exist " +
              "in user entry %s",
                   ConditionResult.UNDEFINED.toString(),
                   attributeType.getNameOrOID(), userDNString);
@@ -666,8 +668,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Setting password changed time for user %s to current time " +
-            "of %d", userDNString, currentTime);
+        TRACER.debugInfo("Setting password changed time for user %s to " +
+            "current time of %d", userDNString, currentTime);
       }
     }
 
@@ -721,7 +723,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored result of %b for user %s",
+          TRACER.debugInfo("Returning stored result of %b for user %s",
                     (isDisabled == ConditionResult.TRUE), userDNString);
         }
       }
@@ -739,15 +741,15 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       isDisabled = ConditionResult.TRUE;
       if (debug)
       {
-          debugWarning("User %s is considered administratively disabled " +
-               "because an error occurred while attempting to make " +
-               "the determination: %s.",
+          TRACER.debugWarning("User %s is considered administratively " +
+              "disabled because an error occurred while attempting to make " +
+              "the determination: %s.",
                        userDNString, stackTraceToSingleLineString(e));
       }
 
@@ -761,8 +763,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("User %s is not administratively disabled since the" +
-                          " attribute \"%s\" is not present in the entry.",
+          TRACER.debugInfo("User %s is not administratively disabled since " +
+              "the attribute \"%s\" is not present in the entry.",
                      userDNString, OP_ATTR_ACCOUNT_DISABLED);
         }
       }
@@ -773,7 +775,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("User %s %s administratively disabled.",
+        TRACER.debugInfo("User %s %s administratively disabled.",
                   userDNString,
                   ((isDisabled == ConditionResult.TRUE) ? " is" : " is not"));
       }
@@ -797,7 +799,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating user %s to set the disabled flag to %b",
+        TRACER.debugInfo("Updating user %s to set the disabled flag to %b",
                   userDNString, isDisabled);
       }
     }
@@ -862,7 +864,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored result of %b for user %s",
+          TRACER.debugInfo("Returning stored result of %b for user %s",
                     (isAccountExpired == ConditionResult.TRUE), userDNString);
         }
       }
@@ -883,14 +885,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       isAccountExpired = ConditionResult.TRUE;
       if (debug)
       {
-          debugWarning("User %s is considered to have an expired account " +
-               "because an error occurred while attempting to make " +
+          TRACER.debugWarning("User %s is considered to have an expired " +
+               "account because an error occurred while attempting to make " +
                "the determination: %s.",
               userDNString, stackTraceToSingleLineString(e));
       }
@@ -906,8 +908,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("The account for user %s is not expired because the " +
-              "expiration time has not yet arrived.", userDNString);
+          TRACER.debugInfo("The account for user %s is not expired because " +
+              "the expiration time has not yet arrived.", userDNString);
         }
       }
     }
@@ -919,7 +921,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("The account for user %s is expired because the " +
+          TRACER.debugInfo("The account for user %s is expired because the " +
               "expiration time in that account has passed.", userDNString);
         }
       }
@@ -933,7 +935,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("The account for user %s is not expired because " +
+          TRACER.debugInfo("The account for user %s is not expired because " +
               "there is no expiration time in the user's entry.",
           userDNString);
         }
@@ -963,7 +965,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored auth failure time list of %d " +
+          TRACER.debugInfo("Returning stored auth failure time list of %d " +
               "elements for user %s" +
               authFailureTimes.size(), userDNString);
         }
@@ -988,12 +990,12 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (debug)
       {
-        debugWarning("Error while processing auth failure times " +
+        TRACER.debugWarning("Error while processing auth failure times " +
              "for user %s: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
@@ -1019,8 +1021,8 @@
       {
        if (debugEnabled())
         {
-          debugInfo("Returning an empty auth failure time list for user %s" +
-                    " because the attribute is absent from the entry.",
+          TRACER.debugInfo("Returning an empty auth failure time list for " +
+              "user %s because the attribute is absent from the entry.",
                     userDNString);
         }
       }
@@ -1045,8 +1047,8 @@
           {
             if (debugEnabled())
             {
-              debugInfo("Removing expired auth failure time %d for user %s",
-                        l, userDNString);
+              TRACER.debugInfo("Removing expired auth failure time %d for " +
+                  "user %s", l, userDNString);
             }
           }
 
@@ -1099,8 +1101,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning auth failure time list of %d elements for user %s",
-            authFailureTimes.size(), userDNString);
+        TRACER.debugInfo("Returning auth failure time list of %d elements " +
+            "for user %s", authFailureTimes.size(), userDNString);
       }
     }
 
@@ -1122,7 +1124,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating authentication failure times for user %s",
+        TRACER.debugInfo("Updating authentication failure times for user %s",
                   userDNString);
       }
     }
@@ -1190,7 +1192,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Locking user account %s due to too many failures.",
+          TRACER.debugInfo("Locking user account %s due to too many failures.",
                     userDNString);
         }
       }
@@ -1209,7 +1211,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Clearing authentication failure times for user %s",
+        TRACER.debugInfo("Clearing authentication failure times for user %s",
                   userDNString);
       }
     }
@@ -1271,14 +1273,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       failureLockedTime = currentTime;
       if (debug)
       {
-        debugWarning("Returning current time for user %s because an error " +
-             "occurred: %s",
+        TRACER.debugWarning("Returning current time for user %s because an " +
+            "error occurred: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
 
@@ -1342,7 +1344,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Clearing failure lockout time for user %s.", userDNString);
+        TRACER.debugInfo("Clearing failure lockout time for user %s.",
+                         userDNString);
       }
     }
 
@@ -1401,8 +1404,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s because lockout due to " +
-               "failures is not enabled.", userDNString);
+          TRACER.debugInfo("Returning false for user %s because lockout due " +
+              "to failures is not enabled.", userDNString);
         }
       }
 
@@ -1432,8 +1435,8 @@
         {
           if (debugEnabled())
           {
-            debugInfo("Returning false for user %s because there is no " +
-                 "locked time.", userDNString);
+            TRACER.debugInfo("Returning false for user %s because there is " +
+                "no locked time.", userDNString);
           }
         }
 
@@ -1447,8 +1450,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Locking user %s because there were enough existing " +
-               "failures even though there was no account locked time.",
+          TRACER.debugInfo("Locking user %s because there were enough " +
+              "existing failures even though there was no account locked time.",
                     userDNString);
         }
       }
@@ -1468,8 +1471,8 @@
         {
           if (debugEnabled())
           {
-            debugInfo("Returning true for user %s because there is a locked " +
-                 "time and the lockout duration has not been reached.",
+            TRACER.debugInfo("Returning true for user %s because there is a " +
+                "locked time and the lockout duration has not been reached.",
                       userDNString);
           }
         }
@@ -1484,7 +1487,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s " +
+          TRACER.debugInfo("Returning false for user %s " +
                "because the existing lockout has expired.", userDNString);
         }
       }
@@ -1497,7 +1500,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning true for user %s " +
+        TRACER.debugInfo("Returning true for user %s " +
              "because there is a locked time and no lockout duration.",
                   userDNString);
       }
@@ -1557,8 +1560,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored last login time of %d for user %s.",
-                    lastLoginTime, userDNString);
+          TRACER.debugInfo("Returning stored last login time of %d for " +
+              "user %s.", lastLoginTime, userDNString);
         }
       }
 
@@ -1577,8 +1580,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning -1 for user %s because no last login time " +
-               "will be maintained.", userDNString);
+          TRACER.debugInfo("Returning -1 for user %s because no last login " +
+              "time will be maintained.", userDNString);
         }
       }
 
@@ -1605,7 +1608,7 @@
           {
             if (debugEnabled())
             {
-              debugInfo("Returning last login time of %d for user %s" +
+              TRACER.debugInfo("Returning last login time of %d for user %s" +
                    "decoded using current last login time format.",
                         lastLoginTime, userDNString);
               }
@@ -1617,7 +1620,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This could mean that the last login time was encoded using a
@@ -1633,9 +1636,9 @@
               {
                 if (debugEnabled())
                 {
-                  debugInfo("Returning last login time of %d for user %s" +
-                       "decoded using previous last login time format of %s.",
-                            lastLoginTime, userDNString, f);
+                  TRACER.debugInfo("Returning last login time of %d for " +
+                      "user %s decoded using previous last login time format " +
+                      "of %s.", lastLoginTime, userDNString, f);
                 }
               }
 
@@ -1645,7 +1648,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1653,9 +1656,9 @@
           assert lastLoginTime == -1;
           if (debug)
           {
-              debugWarning("Returning -1 for user %s because the last login " +
-                   "time value %s could not be parsed using any known format.",
-                           userDNString, valueString);
+              TRACER.debugWarning("Returning -1 for user %s because the " +
+                  "last login time value %s could not be parsed using any " +
+                  "known format.", userDNString, valueString);
           }
 
           return lastLoginTime;
@@ -1668,7 +1671,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning %d for user %s because no last " +
+        TRACER.debugInfo("Returning %d for user %s because no last " +
             "login time value exists.", lastLoginTime, userDNString);
       }
     }
@@ -1701,13 +1704,13 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (debug)
       {
-        debugWarning("Unable to set last login time for user %s because an " +
-             "error occurred: %s",
+        TRACER.debugWarning("Unable to set last login time for user %s " +
+            "because an error occurred: %s",
                      userDNString, stackTraceToSingleLineString(e));
       }
 
@@ -1722,8 +1725,9 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Not updating last login time for user %s because the " +
-              "new value matches the existing value.", userDNString);
+          TRACER.debugInfo("Not updating last login time for user %s " +
+              "because the new value matches the existing value.",
+                           userDNString);
         }
       }
 
@@ -1751,7 +1755,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updated the last login time for user %s to %s",
+        TRACER.debugInfo("Updated the last login time for user %s to %s",
                   userDNString, timestamp);
       }
     }
@@ -1774,7 +1778,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored result of %b for user %s",
+          TRACER.debugInfo("Returning stored result of %b for user %s",
                     (isIdleLocked == ConditionResult.TRUE), userDNString);
         }
       }
@@ -1792,8 +1796,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s because no idle lockout " +
-              "interval is defined.", userDNString);
+          TRACER.debugInfo("Returning false for user %s because no idle " +
+              "lockout interval is defined.", userDNString);
         }
       }
 
@@ -1826,7 +1830,7 @@
             reason.append(
                  "the password changed time is in an acceptable window");
           }
-          debugInfo("Returning false for user %s because %s.",
+          TRACER.debugInfo("Returning false for user %s because %s.",
                     userDNString, reason.toString());
         }
       }
@@ -1843,7 +1847,7 @@
                   "changed time is not in an acceptable window"
              : "neither last login time nor password " +
                   "changed time are in an acceptable window";
-          debugInfo("Returning true for user %s because %s.",
+          TRACER.debugInfo("Returning true for user %s because %s.",
                     userDNString, reason);
         }
       }
@@ -1869,7 +1873,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored result of %b for user %s.",
+          TRACER.debugInfo("Returning stored result of %b for user %s.",
                     (mustChangePassword == ConditionResult.TRUE), userDNString);
         }
       }
@@ -1892,8 +1896,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s because neither force " +
-               "change on add nor force change on reset is enabled, " +
+          TRACER.debugInfo("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);
 
@@ -1919,14 +1923,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       mustChangePassword = ConditionResult.TRUE;
       if (debug)
       {
-        debugWarning("Returning true for user %s because an error occurred: %s",
-                     userDNString, stackTraceToSingleLineString(e));
+        TRACER.debugWarning("Returning true for user %s because an error " +
+            "occurred: %s", userDNString, stackTraceToSingleLineString(e));
       }
 
       return true;
@@ -1939,7 +1943,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning %b for user since the attribute \"%s\"" +
+          TRACER.debugInfo("Returning %b for user since the attribute \"%s\"" +
                " is not present in the entry.",
                     false, userDNString, OP_ATTR_PWPOLICY_RESET_REQUIRED);
         }
@@ -1952,7 +1956,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning %b for user %s.",
+        TRACER.debugInfo("Returning %b for user %s.",
                   (mustChangePassword == ConditionResult.TRUE), userDNString);
       }
     }
@@ -1975,7 +1979,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating user %s to set the reset flag to %b",
+        TRACER.debugInfo("Updating user %s to set the reset flag to %b",
                   userDNString, mustChangePassword);
       }
     }
@@ -2050,8 +2054,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s because there is no maximum " +
-              "reset age.", userDNString);
+          TRACER.debugInfo("Returning false for user %s because there is no " +
+              "maximum reset age.", userDNString);
         }
       }
 
@@ -2064,8 +2068,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false for user %s because the user's password " +
-              "has not been reset.", userDNString);
+          TRACER.debugInfo("Returning false for user %s because the user's " +
+              "password has not been reset.", userDNString);
         }
       }
 
@@ -2080,8 +2084,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning %b for user %s after comparing the current and " +
-            "max reset times.", locked, userDNString);
+        TRACER.debugInfo("Returning %b for user %s after comparing the " +
+            "current and max reset times.", locked, userDNString);
       }
     }
 
@@ -2274,8 +2278,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning password expiration time of %d for user %s.",
-                  expirationTime, userDNString);
+        TRACER.debugInfo("Returning password expiration time of %d for user " +
+            "%s.", expirationTime, userDNString);
       }
     }
 
@@ -2323,7 +2327,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false because there is no minimum age.");
+          TRACER.debugInfo("Returning false because there is no minimum age.");
         }
       }
 
@@ -2336,7 +2340,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false because the minimum age has expired.");
+          TRACER.debugInfo("Returning false because the minimum age has " +
+              "expired.");
         }
       }
 
@@ -2349,8 +2354,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false because the account is in a must-change " +
-              "state.");
+          TRACER.debugInfo("Returning false because the account is in a " +
+              "must-change state.");
         }
       }
 
@@ -2363,7 +2368,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning true.");
+          TRACER.debugInfo("Returning true.");
         }
       }
 
@@ -2480,8 +2485,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning stored required change time of %d for user %s",
-                    requiredChangeTime, userDNString);
+          TRACER.debugInfo("Returning stored required change time of %d for " +
+              "user %s", requiredChangeTime, userDNString);
         }
       }
 
@@ -2499,14 +2504,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       requiredChangeTime = -1;
       if (debug)
       {
-        debugWarning("Returning %d for user %s because an error occurred: %s",
-                     requiredChangeTime, userDNString,
+        TRACER.debugWarning("Returning %d for user %s because an error " +
+            "occurred: %s", requiredChangeTime, userDNString,
                      stackTraceToSingleLineString(e));
       }
 
@@ -2517,7 +2522,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning required change time of %d for user %s",
+        TRACER.debugInfo("Returning required change time of %d for user %s",
                   requiredChangeTime, userDNString);
       }
     }
@@ -2537,7 +2542,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating required change time for user %s", userDNString);
+        TRACER.debugInfo("Updating required change time for user %s",
+                         userDNString);
       }
     }
 
@@ -2593,13 +2599,13 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         if (debug)
         {
-          debugWarning("Unable to decode the warned time for user %s: %s",
-                       userDNString, stackTraceToSingleLineString(e));
+          TRACER.debugWarning("Unable to decode the warned time for user %s: " +
+              "%s", userDNString, stackTraceToSingleLineString(e));
         }
 
         warnedTime = -1;
@@ -2611,7 +2617,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning a warned time of %d for user %s",
+        TRACER.debugInfo("Returning a warned time of %d for user %s",
                   warnedTime, userDNString);
       }
     }
@@ -2633,8 +2639,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Not updating warned time for user %s because the warned " +
-              "time is the same as the current time.", userDNString);
+          TRACER.debugInfo("Not updating warned time for user %s because " +
+              "the warned time is the same as the current time.", userDNString);
         }
       }
 
@@ -2665,7 +2671,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updated the warned time for user %s", userDNString);
+        TRACER.debugInfo("Updated the warned time for user %s", userDNString);
       }
     }
   }
@@ -2681,7 +2687,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Clearing warned time for user %s", userDNString);
+        TRACER.debugInfo("Clearing warned time for user %s", userDNString);
       }
     }
 
@@ -2707,7 +2713,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Cleared the warned time for user %s", userDNString);
+        TRACER.debugInfo("Cleared the warned time for user %s", userDNString);
       }
     }
   }
@@ -2741,12 +2747,12 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         if (debug)
         {
-          debugWarning("Error while processing grace login times " +
+          TRACER.debugWarning("Error while processing grace login times " +
                "for user %s: %s",
                        userDNString, stackTraceToSingleLineString(e));
         }
@@ -2770,7 +2776,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning grace login times for user %s", userDNString);
+        TRACER.debugInfo("Returning grace login times for user %s",
+                         userDNString);
       }
     }
 
@@ -2809,7 +2816,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating grace login times for user %s", userDNString);
+        TRACER.debugInfo("Updating grace login times for user %s",
+                         userDNString);
       }
     }
 
@@ -2879,7 +2887,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Clearing grace login times for user %s", userDNString);
+        TRACER.debugInfo("Clearing grace login times for user %s",
+                         userDNString);
       }
     }
 
@@ -2962,9 +2971,9 @@
           {
             if (debug)
             {
-              debugWarning("User entry %s contains a password with scheme %s " +
-                   "that is not defined in the server.",
-                           userDNString, schemeName);
+              TRACER.debugWarning("User entry %s contains a password with " +
+                  "scheme %s that is not defined in the server.",
+                                  userDNString, schemeName);
             }
 
             continue;
@@ -2985,13 +2994,13 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugWarning("Cannot get clear password value foruser %s: %s",
-                         userDNString, e);
+            TRACER.debugWarning("Cannot get clear password value foruser %s: " +
+                "%s", userDNString, e);
           }
         }
       }
@@ -3021,9 +3030,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Returning false because user %s does not have any " +
-              "values for password attribute %s",
-                    userDNString,
+          TRACER.debugInfo("Returning false because user %s does not have " +
+              "any values for password attribute %s", userDNString,
                     passwordPolicy.getPasswordAttribute().getNameOrOID());
         }
       }
@@ -3064,9 +3072,9 @@
           {
             if (debug)
             {
-              debugWarning("User entry %s contains a password with scheme %s " +
-                   "that is not defined in the server.",
-                           userDNString, schemeName);
+              TRACER.debugWarning("User entry %s contains a password with " +
+                  "scheme %s that is not defined in the server.",
+                                  userDNString, schemeName);
             }
 
             continue;
@@ -3084,8 +3092,8 @@
             {
               if (debugEnabled())
               {
-                debugInfo("Returning true for user %s because the provided " +
-                    "password matches a value encoded with scheme %s",
+                TRACER.debugInfo("Returning true for user %s because the " +
+                    "provided password matches a value encoded with scheme %s",
                           userDNString, schemeName);
               }
             }
@@ -3097,14 +3105,14 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugWarning("An error occurred while attempting to process a " +
-                 "password value for user %s: %s",
-                         userDNString, stackTraceToSingleLineString(e));
+            TRACER.debugWarning("An error occurred while attempting to " +
+                "process a password value for user %s: %s",
+                     userDNString, stackTraceToSingleLineString(e));
           }
         }
       }
@@ -3115,8 +3123,8 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Returning false because the provided password does not " +
-            "match any of the stored password values for user %s",
+        TRACER.debugInfo("Returning false because the provided password does " +
+            "not match any of the stored password values for user %s",
                   userDNString);
       }
     }
@@ -3221,8 +3229,9 @@
         {
           if (debugEnabled())
           {
-            debugInfo("The password provided for user %s failed the %s " +
-                "password validator.", userDNString, validatorDN.toString());
+            TRACER.debugInfo("The password provided for user %s failed " +
+                "the %s password validator.",
+                             userDNString, validatorDN.toString());
           }
         }
 
@@ -3234,8 +3243,9 @@
         {
           if (debugEnabled())
           {
-            debugInfo("The password provided for user %s passed the %s " +
-                "password validator.", userDNString, validatorDN.toString());
+            TRACER.debugInfo("The password provided for user %s passed " +
+                "the %s password validator.",
+                             userDNString, validatorDN.toString());
           }
         }
       }
@@ -3261,7 +3271,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Doing nothing for user %s because no " +
+          TRACER.debugInfo("Doing nothing for user %s because no " +
               "deprecated storage schemes have been defined.", userDNString);
         }
       }
@@ -3278,8 +3288,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Doing nothing for entry %s because no password values " +
-              "were found.", userDNString);
+          TRACER.debugInfo("Doing nothing for entry %s because no password " +
+              "values were found.", userDNString);
         }
       }
 
@@ -3329,9 +3339,9 @@
           {
             if (debug)
             {
-              debugWarning("Skipping password value for user %s because the " +
-                   "associated storage scheme %s is not configured for use.",
-                           userDNString, schemeName);
+              TRACER.debugWarning("Skipping password value for user %s " +
+                  "because the associated storage scheme %s is not " +
+                  "configured for use.", userDNString, schemeName);
             }
 
             continue;
@@ -3356,8 +3366,8 @@
               {
                 if (debugEnabled())
                 {
-                  debugInfo("Marking password with scheme %s for removal " +
-                      "from user entry %s.", schemeName, userDNString);
+                  TRACER.debugInfo("Marking password with scheme %s for " +
+                      "removal from user entry %s.", schemeName, userDNString);
                 }
               }
 
@@ -3374,14 +3384,14 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugWarning("Skipping password value for user %s because an " +
-                 "error occurred while attempting to decode it " +
-                 "based on the user password syntax: %s",
+            TRACER.debugWarning("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));
           }
         }
@@ -3394,7 +3404,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo("User entry %s does not have any password values " +
+          TRACER.debugInfo("User entry %s does not have any password values " +
               "encoded using deprecated schemes.", userDNString);
         }
       }
@@ -3423,12 +3433,12 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           if (debug)
           {
-            debugWarning("Unable to encode password for user %s using " +
+            TRACER.debugWarning("Unable to encode password for user %s using " +
                  "default scheme %s: %s",
                          userDNString, s.getStorageSchemeName(),
                          stackTraceToSingleLineString(e));
@@ -3441,7 +3451,7 @@
     {
       if (debug)
       {
-        debugWarning("Not updating user entry %s because removing " +
+        TRACER.debugWarning("Not updating user entry %s because removing " +
              "deprecated schemes would leave the user without a password.",
                      userDNString);
       }
@@ -3471,7 +3481,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Updating user entry %s to replace password values " +
+        TRACER.debugInfo("Updating user entry %s to replace password values " +
             "encoded with deprecated schemes with values encoded " +
             "with the default schemes.", userDNString);
       }
@@ -3497,10 +3507,9 @@
     {
       if (debug)
       {
-        debugWarning("Unable to generate a new password for user %s because " +
-             "no password generator has been defined in the associated " +
-             "password policy.",
-                     userDNString);
+        TRACER.debugWarning("Unable to generate a new password for user " +
+            "%s because no password generator has been defined in the " +
+            "associated password policy.", userDNString);
       }
 
       return null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java b/opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java
index 0069000..855f691 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java
@@ -42,6 +42,7 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 
 
@@ -51,6 +52,11 @@
  */
 public class PersistentSearch
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether entries returned should include the entry change
   // notification control.
   private boolean returnECs;
@@ -229,7 +235,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // FIXME -- Do we need to do anything here?
@@ -263,7 +269,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       DirectoryServer.deregisterPersistentSearch(this);
@@ -276,7 +282,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
     }
@@ -344,7 +350,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // FIXME -- Do we need to do anything here?
@@ -378,7 +384,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       DirectoryServer.deregisterPersistentSearch(this);
@@ -391,7 +397,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
     }
@@ -462,7 +468,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // FIXME -- Do we need to do anything here?
@@ -496,7 +502,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       DirectoryServer.deregisterPersistentSearch(this);
@@ -509,7 +515,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
     }
@@ -602,7 +608,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // FIXME -- Do we need to do anything here?
@@ -637,7 +643,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       DirectoryServer.deregisterPersistentSearch(this);
@@ -650,7 +656,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
index bad8f83..781d56a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
@@ -75,10 +75,10 @@
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchResultReference;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.PluginMessages.*;
@@ -98,6 +98,11 @@
                   ConfigurationDeleteListener<PluginCfg>,
                   ConfigurationChangeListener<PluginCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Arrays for holding the plugins of each type.
   private DirectoryServerPlugin[] startupPlugins;
   private DirectoryServerPlugin[] shutdownPlugins;
@@ -451,7 +456,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1004,7 +1009,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_STARTUP_PLUGIN_EXCEPTION;
@@ -1081,7 +1086,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_SHUTDOWN_PLUGIN_EXCEPTION;
@@ -1118,7 +1123,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_PLUGIN_POST_CONNECT_PLUGIN_EXCEPTION;
@@ -1138,7 +1143,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
 
@@ -1165,7 +1170,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -1222,7 +1227,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID = MSGID_PLUGIN_POST_DISCONNECT_PLUGIN_EXCEPTION;
@@ -1291,7 +1296,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_LDIF_IMPORT_PLUGIN_EXCEPTION;
@@ -1357,7 +1362,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_LDIF_EXPORT_PLUGIN_EXCEPTION;
@@ -1422,7 +1427,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1504,7 +1509,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1584,7 +1589,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1664,7 +1669,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1746,7 +1751,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1828,7 +1833,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1910,7 +1915,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -1992,7 +1997,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -2074,7 +2079,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -2156,7 +2161,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_PARSE_PLUGIN_EXCEPTION;
@@ -2238,7 +2243,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2318,7 +2323,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2398,7 +2403,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2480,7 +2485,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2562,7 +2567,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2644,7 +2649,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2726,7 +2731,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2808,7 +2813,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_PRE_OPERATION_PLUGIN_EXCEPTION;
@@ -2890,7 +2895,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -2972,7 +2977,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3052,7 +3057,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3132,7 +3137,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3214,7 +3219,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3296,7 +3301,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3378,7 +3383,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3460,7 +3465,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3542,7 +3547,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3624,7 +3629,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_OPERATION_PLUGIN_EXCEPTION;
@@ -3706,7 +3711,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -3780,7 +3785,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -3854,7 +3859,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -3928,7 +3933,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -4002,7 +4007,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -4076,7 +4081,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -4150,7 +4155,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -4224,7 +4229,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_POST_RESPONSE_PLUGIN_EXCEPTION;
@@ -4300,7 +4305,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_SEARCH_ENTRY_PLUGIN_EXCEPTION;
@@ -4372,7 +4377,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_SEARCH_REFERENCE_PLUGIN_EXCEPTION;
@@ -4444,7 +4449,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_PLUGIN_INTERMEDIATE_RESPONSE_PLUGIN_EXCEPTION;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java
index 10b38fe..1c11aef 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java
@@ -56,10 +56,10 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -78,6 +78,11 @@
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener,
                   ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -130,7 +135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_ROOTDN_CANNOT_GET_BASE;
@@ -189,7 +194,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_ERROR_DETERMINING_ROOT_PRIVILEGES;
@@ -343,7 +348,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_CANNOT_PARSE_ALTERNATE_BIND_DNS;
@@ -397,7 +402,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_CANNOT_PARSE_ALTERNATE_BIND_DNS;
@@ -439,7 +444,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             msgID = MSGID_CONFIG_ROOTDN_CANNOT_REGISTER_ALTERNATE_BIND_DN;
@@ -539,7 +544,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_CANNOT_PARSE_ALTERNATE_BIND_DNS;
@@ -591,7 +596,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_CANNOT_PARSE_ALTERNATE_BIND_DNS;
@@ -633,7 +638,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             msgID = MSGID_CONFIG_ROOTDN_CANNOT_REGISTER_ALTERNATE_BIND_DN;
@@ -807,7 +812,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_ROOTDN_ERROR_DETERMINING_ROOT_PRIVILEGES;
@@ -896,7 +901,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (resultCode == ResultCode.SUCCESS)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
index 8db2e53..7122e5b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
@@ -73,10 +73,10 @@
 import org.opends.server.util.LDIFReader;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -97,6 +97,11 @@
 public class SchemaConfigManager
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The schema that has been parsed from the server configuration.
   private Schema schema;
 
@@ -179,7 +184,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_GET_MR_BASE;
@@ -274,7 +279,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_MR_UNABLE_TO_DETERMINE_ENABLED_STATE;
@@ -319,7 +324,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_MR_CANNOT_GET_CLASS;
@@ -340,7 +345,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_MR_CANNOT_INSTANTIATE;
@@ -362,7 +367,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_MR_CANNOT_INITIALIZE;
@@ -384,7 +389,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_MR_CONFLICTING_MR;
@@ -424,7 +429,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_GET_SYNTAX_BASE;
@@ -518,7 +523,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_SYNTAX_UNABLE_TO_DETERMINE_ENABLED_STATE;
@@ -562,7 +567,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_GET_CLASS;
@@ -583,7 +588,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_INSTANTIATE;
@@ -605,7 +610,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_INITIALIZE;
@@ -627,7 +632,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX;
@@ -716,7 +721,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -725,7 +730,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_LIST_FILES;
@@ -831,7 +836,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_OPEN_FILE;
@@ -867,7 +872,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_READ_LDIF_ENTRY;
@@ -894,7 +899,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -916,7 +921,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       attrTypeSyntax = new AttributeTypeSyntax();
@@ -957,7 +962,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       ocSyntax = new ObjectClassSyntax();
@@ -998,7 +1003,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       nfSyntax = new NameFormSyntax();
@@ -1039,7 +1044,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       dcrSyntax = new DITContentRuleSyntax();
@@ -1081,7 +1086,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       dsrSyntax = new DITStructureRuleSyntax();
@@ -1123,7 +1128,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       mruSyntax = new MatchingRuleUseSyntax();
@@ -1183,7 +1188,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_ATTR_TYPE;
@@ -1205,7 +1210,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_ATTR_TYPE;
@@ -1235,7 +1240,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_ATTR_TYPE;
@@ -1254,7 +1259,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1282,7 +1287,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_OC;
@@ -1304,7 +1309,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_OC;
@@ -1335,7 +1340,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_OC;
@@ -1353,7 +1358,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1381,7 +1386,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM;
@@ -1403,7 +1408,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM;
@@ -1434,7 +1439,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_NAME_FORM;
@@ -1452,7 +1457,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1480,7 +1485,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_DCR;
@@ -1502,7 +1507,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_DCR;
@@ -1533,7 +1538,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_DCR;
@@ -1551,7 +1556,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1580,7 +1585,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_DSR;
@@ -1602,7 +1607,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_DSR;
@@ -1633,7 +1638,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_DSR;
@@ -1651,7 +1656,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
@@ -1680,7 +1685,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_MRU;
@@ -1702,7 +1707,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CANNOT_PARSE_MRU;
@@ -1733,7 +1738,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_CONFIG_SCHEMA_CONFLICTING_MRU;
@@ -1751,7 +1756,7 @@
               // This should never happen.
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
           }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java
index c6fdf1c..9b8fad7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java
@@ -81,6 +81,7 @@
 import static org.opends.server.core.CoreConstants.*;
 import static org.opends.server.loggers.AccessLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -98,6 +99,11 @@
                   PostOperationSearchOperation, PostResponseSearchOperation,
                   SearchEntrySearchOperation, SearchReferenceSearchOperation
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether a search result done response has been sent to the
   // client.
   private AtomicBoolean responseSent;
@@ -850,7 +856,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -1143,7 +1149,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResponseData(de);
@@ -1249,7 +1255,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResponseData(de);
@@ -1583,7 +1589,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -1605,7 +1611,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -1645,7 +1651,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1669,7 +1675,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 setResultCode(de.getResultCode());
@@ -1704,7 +1710,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -1743,7 +1749,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1763,7 +1769,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               setResultCode(de.getResultCode());
@@ -1821,7 +1827,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1841,7 +1847,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               setResultCode(de.getResultCode());
@@ -1889,7 +1895,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1930,7 +1936,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -1967,7 +1973,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, le);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, le);
                 }
 
                 setResultCode(ResultCode.valueOf(le.getResultCode()));
@@ -2105,7 +2111,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         setResultCode(de.getResultCode());
@@ -2125,7 +2131,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, coe);
+          TRACER.debugCaught(DebugLogLevel.ERROR, coe);
         }
 
         CancelResult cancelResult = coe.getCancelResult();
@@ -2152,7 +2158,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         setResultCode(DirectoryServer.getServerErrorResultCode());
@@ -2302,7 +2308,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
index 659b148..bdfcb9e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
@@ -28,8 +28,8 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -68,6 +68,11 @@
        ConfigurationAddListener<SynchronizationProviderCfg>,
        ConfigurationDeleteListener<SynchronizationProviderCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -192,7 +197,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
             messages.add(e.getMessage());
             resultCode = DirectoryServer.getServerErrorResultCode();
           }
@@ -201,7 +206,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           int msgID = MSGID_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER;
           messages.add(getMessage(msgID, String.valueOf(
@@ -300,7 +305,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
           messages.add(e.getMessage());
           resultCode = DirectoryServer.getServerErrorResultCode();
         }
@@ -309,7 +314,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int msgID = MSGID_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER;
         messages.add(getMessage(msgID, String.valueOf(
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
index aea33a8..5c75551 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
@@ -52,10 +52,10 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -72,6 +72,11 @@
 public class TrustManagerProviderConfigManager
        implements ConfigChangeListener, ConfigAddListener, ConfigDeleteListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -121,7 +126,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_TRUSTMANAGER_CANNOT_GET_BASE;
@@ -259,7 +264,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -278,7 +283,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -297,7 +302,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS;
@@ -332,7 +337,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_ENABLED_VALUE;
@@ -440,7 +445,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_ENABLED_VALUE;
@@ -478,7 +483,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -522,7 +527,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS;
@@ -542,7 +547,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_CONFIG_TRUSTMANAGER_INITIALIZATION_FAILED;
@@ -629,7 +634,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -648,7 +653,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -667,7 +672,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS;
@@ -708,7 +713,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_ENABLED_VALUE;
@@ -815,7 +820,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_ENABLED_VALUE;
@@ -852,7 +857,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS_NAME;
@@ -875,7 +880,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INVALID_CLASS;
@@ -893,7 +898,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_TRUSTMANAGER_INITIALIZATION_FAILED;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
index c895ab6..feb5864 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
@@ -57,6 +57,7 @@
 
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -75,6 +76,11 @@
                   ConfigurationAddListener<VirtualAttributeCfg>,
                   ConfigurationDeleteListener<VirtualAttributeCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // A mapping between the DNs of the config entries and the associated
   // virtual attribute rules.
   private ConcurrentHashMap<DN,VirtualAttributeRule> rules;
@@ -148,7 +154,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               int    msgID   = MSGID_CONFIG_VATTR_INVALID_SEARCH_FILTER;
@@ -235,7 +241,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_CONFIG_VATTR_INVALID_SEARCH_FILTER;
@@ -283,7 +289,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         if (resultCode == ResultCode.SUCCESS)
@@ -404,7 +410,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_CONFIG_VATTR_INVALID_SEARCH_FILTER;
@@ -464,7 +470,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         if (resultCode == ResultCode.SUCCESS)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
index 5901b3f..e5f8ee3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
@@ -39,8 +39,8 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -55,6 +55,11 @@
 public class Base64PasswordStorageScheme
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -167,7 +172,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
index 3b21c73..7e14f81 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
@@ -57,8 +57,8 @@
 import org.opends.server.types.LockManager;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -85,6 +85,11 @@
        implements ConfigurationChangeListener<
                        CramMD5SASLMechanismHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // An array filled with the inner pad byte.
   private byte[] iPad;
 
@@ -151,7 +156,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_SASLCRAMMD5_CANNOT_GET_MESSAGE_DIGEST;
@@ -306,7 +311,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, pe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, pe);
       }
 
       bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -335,7 +340,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -392,7 +397,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -424,7 +429,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java
index 3ed0dcc..8543df6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java
@@ -40,8 +40,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -60,6 +60,11 @@
 public class CancelExtendedOperation
        extends ExtendedOperationHandler<ExtendedOperationHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -150,7 +155,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         operation.setResultCode(ResultCode.PROTOCOL_ERROR);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java
index e3bf9a4..0c984e1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java
@@ -107,8 +107,9 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -125,6 +126,11 @@
        implements AlertGenerator
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -222,7 +228,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -231,7 +237,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_CANNOT_VERIFY_EXISTENCE;
@@ -291,7 +297,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_UNABLE_TO_APPLY_STARTUP_CHANGES;
@@ -316,7 +322,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_CANNOT_OPEN_FOR_READ;
@@ -335,7 +341,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
       try
@@ -346,7 +352,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -359,7 +365,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -370,7 +376,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
 
@@ -391,7 +397,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -417,7 +423,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       try
@@ -428,7 +434,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -438,7 +444,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -449,7 +455,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
 
@@ -480,7 +486,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, le);
+          TRACER.debugCaught(DebugLogLevel.ERROR, le);
         }
 
         try
@@ -491,7 +497,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -504,7 +510,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         try
@@ -515,7 +521,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
 
@@ -537,7 +543,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -557,7 +563,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -581,7 +587,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -603,7 +609,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -628,7 +634,7 @@
         // This should not happen.
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         try
@@ -639,7 +645,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
 
@@ -671,7 +677,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_CANNOT_DETERMINE_SERVER_ROOT;
@@ -703,7 +709,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -712,7 +718,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_CANNOT_DETERMINE_SERVER_ROOT;
@@ -739,7 +745,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_CANNOT_REGISTER_AS_PRIVATE_SUFFIX;
@@ -1022,7 +1028,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -1327,7 +1333,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ce);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
         }
 
         int    msgID   = MSGID_CONFIG_FILE_ADD_FAILED;
@@ -1475,7 +1481,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ce);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
         }
 
         int    msgID   = MSGID_CONFIG_FILE_DELETE_FAILED;
@@ -1976,7 +1982,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_MANUAL_CHANGES_LOST;
@@ -2005,7 +2011,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_WRITE_CANNOT_EXPORT_NEW_CONFIG;
@@ -2032,7 +2038,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_WRITE_CANNOT_RENAME_NEW_CONFIG;
@@ -2092,7 +2098,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_FILE_CANNOT_CREATE_ARCHIVE_DIR;
@@ -2133,7 +2139,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_CANNOT_WRITE_CONFIG_ARCHIVE;
@@ -2168,7 +2174,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_CANNOT_WRITE_CONFIG_ARCHIVE;
@@ -2264,7 +2270,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_CONFIG_LDIF_WRITE_ERROR;
@@ -2281,7 +2287,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_CLOSE_ERROR;
@@ -2317,7 +2323,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_FILE_WRITE_ERROR;
@@ -2459,7 +2465,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_CONFIG_BACKUP_CANNOT_GET_MAC;
@@ -2483,7 +2489,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_CONFIG_BACKUP_CANNOT_GET_DIGEST;
@@ -2536,7 +2542,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_CONFIG_BACKUP_CANNOT_CREATE_ARCHIVE_FILE;
@@ -2564,7 +2570,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_CONFIG_BACKUP_CANNOT_GET_CIPHER;
@@ -2610,7 +2616,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_CONFIG_BACKUP_CANNOT_DETERMINE_CONFIG_FILE_LOCATION;
@@ -2661,7 +2667,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -2727,7 +2733,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -2757,7 +2763,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID   = MSGID_CONFIG_BACKUP_CANNOT_CLOSE_ZIP_STREAM;
@@ -2801,7 +2807,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
index 99f9746..87d8015 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
@@ -50,6 +50,7 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -64,6 +65,11 @@
        extends PasswordValidator<DictionaryPasswordValidatorCfg>
        implements ConfigurationChangeListener<DictionaryPasswordValidatorCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current configuration for this password validator.
   private DictionaryPasswordValidatorCfg currentConfig;
 
@@ -208,7 +214,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_DICTIONARY_VALIDATOR_CANNOT_READ_FILE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
index cb377fc..02f7b30 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
@@ -67,10 +67,10 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.Base64;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -96,6 +96,11 @@
        implements ConfigurationChangeListener<
                        DigestMD5SASLMechanismHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current configuration for this SASL mechanism handler.
   private DigestMD5SASLMechanismHandlerCfg currentConfig;
 
@@ -155,7 +160,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SASLDIGESTMD5_CANNOT_GET_MESSAGE_DIGEST;
@@ -362,7 +367,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This isn't necessarily fatal because we're going to retry using UTF-8,
@@ -384,7 +389,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This is fatal because either we can't parse the credentials as a
@@ -502,7 +507,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -522,7 +527,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -601,7 +606,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, pe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, pe);
           }
 
           int    msgID   = MSGID_SASLDIGESTMD5_CANNOT_PARSE_RESPONSE_DIGEST;
@@ -715,7 +720,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -773,7 +778,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -817,7 +822,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -875,7 +880,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -934,7 +939,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -983,7 +988,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -1069,7 +1074,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.EXTENSIONS,
@@ -1114,7 +1119,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/DynamicGroup.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/DynamicGroup.java
index c31bb32..245a221 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/DynamicGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/DynamicGroup.java
@@ -57,6 +57,7 @@
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -74,6 +75,11 @@
 public class DynamicGroup
        extends Group
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the entry that holds the definition for this group.
   private DN groupEntryDN;
 
@@ -159,7 +165,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_DYNAMICGROUP_CANNOT_DECODE_MEMBERURL;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
index 92f9af0..903534e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
@@ -51,6 +51,7 @@
 import org.opends.server.types.VirtualAttributeRule;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 
 
@@ -63,6 +64,11 @@
        extends VirtualAttributeProvider<VirtualAttributeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new instance of this entryDN virtual attribute provider.
    */
   public EntryDNVirtualAttributeProvider()
@@ -146,7 +152,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -347,7 +353,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -388,7 +394,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
index 7cecac1..7cef8bd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
@@ -53,8 +53,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -76,6 +76,11 @@
        implements ConfigurationChangeListener<
                        ExternalSASLMechanismHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type that should hold the certificates to use for the
   // validation.
   private AttributeType certificateAttributeType;
@@ -280,7 +285,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       bindOperation.setResponseData(de);
@@ -359,7 +364,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -409,7 +414,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java
index c8b40d5..d8bab05 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java
@@ -61,8 +61,8 @@
 import org.opends.server.types.SearchFilter;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -99,6 +99,11 @@
        extends EntryCache <FIFOEntryCacheCfg>
        implements ConfigurationChangeListener<FIFOEntryCacheCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -224,7 +229,7 @@
       // This should never happen.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -321,7 +326,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -334,7 +339,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -361,7 +366,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -374,7 +379,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -441,7 +446,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -454,7 +459,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -481,7 +486,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -494,7 +499,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -536,7 +541,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does then we can't be sure whether
@@ -566,7 +571,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does, then just ignore it.
@@ -596,7 +601,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return;
@@ -673,7 +678,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return;
@@ -708,7 +713,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does then we can't be sure whether
@@ -738,7 +743,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does, then just ignore it.
@@ -769,7 +774,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We can't rule out the possibility of a conflict, so return false.
@@ -859,7 +864,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We can't be sure there wasn't a conflict, so return false.
@@ -914,7 +919,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This shouldn't happen, but there's not much that we can do if it does.
@@ -951,7 +956,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This shouldn't happen, but there's not much that we can do if it does.
@@ -1012,7 +1017,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This shouldn't happen, but there's not much that we can do if it does.
@@ -1054,7 +1059,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This shouldn't happen, but there's not much that we can do if it does.
@@ -1178,7 +1183,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This shouldn't happen, but there's not much that we can do if it does.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
index a613338..33bb93e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
@@ -57,8 +57,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -74,6 +74,11 @@
        extends KeyManagerProvider<FileBasedKeyManagerCfg>
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -164,7 +169,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       throw ce;
@@ -173,7 +178,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -182,7 +187,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE;
@@ -216,7 +221,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_KEYMANAGER_INVALID_TYPE;
@@ -231,7 +236,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -240,7 +245,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_TYPE;
@@ -296,7 +301,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -305,7 +310,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -346,7 +351,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -355,7 +360,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -424,7 +429,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -433,7 +438,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -461,7 +466,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -509,7 +514,7 @@
     } catch (SecurityException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE;
@@ -527,7 +532,7 @@
       } catch (KeyStoreException kse) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, kse);
+          TRACER.debugCaught(DebugLogLevel.ERROR, kse);
         }
 
         int msgID = MSGID_FILE_KEYMANAGER_INVALID_TYPE;
@@ -669,7 +674,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILE_KEYMANAGER_CANNOT_LOAD;
@@ -691,7 +696,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILE_KEYMANAGER_CANNOT_CREATE_FACTORY;
@@ -842,7 +847,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       unacceptableReasons.add(ce.getMessage());
@@ -852,7 +857,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE;
@@ -886,7 +891,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_KEYMANAGER_INVALID_TYPE;
@@ -902,7 +907,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_TYPE;
@@ -951,7 +956,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -993,7 +998,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -1065,7 +1070,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -1094,7 +1099,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -1179,7 +1184,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       if (resultCode == ResultCode.SUCCESS)
@@ -1191,7 +1196,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE;
@@ -1229,7 +1234,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_KEYMANAGER_INVALID_TYPE;
@@ -1248,7 +1253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_TYPE;
@@ -1309,7 +1314,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -1362,7 +1367,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -1455,7 +1460,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -1489,7 +1494,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
index 0bfa896..477188d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
@@ -55,8 +55,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -72,6 +72,11 @@
        extends TrustManagerProvider
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -162,7 +167,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       throw ce;
@@ -171,7 +176,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -180,7 +185,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_FILE;
@@ -215,7 +220,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_TRUSTMANAGER_INVALID_TYPE;
@@ -230,7 +235,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ie);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ie);
       }
 
       throw ie;
@@ -239,7 +244,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_TYPE;
@@ -297,7 +302,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -306,7 +311,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -347,7 +352,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -356,7 +361,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -425,7 +430,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -434,7 +439,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -462,7 +467,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -516,7 +521,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_LOAD;
@@ -539,7 +544,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_CREATE_FACTORY;
@@ -688,7 +693,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       unacceptableReasons.add(ce.getMessage());
@@ -698,7 +703,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_FILE;
@@ -732,7 +737,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_TRUSTMANAGER_INVALID_TYPE;
@@ -748,7 +753,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_TYPE;
@@ -795,7 +800,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -836,7 +841,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -907,7 +912,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -935,7 +940,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -1012,7 +1017,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
 
       if (resultCode == ResultCode.SUCCESS)
@@ -1024,7 +1029,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_FILE;
@@ -1062,7 +1067,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, kse);
+            TRACER.debugCaught(DebugLogLevel.ERROR, kse);
           }
 
           msgID = MSGID_FILE_TRUSTMANAGER_INVALID_TYPE;
@@ -1081,7 +1086,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_TYPE;
@@ -1142,7 +1147,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -1195,7 +1200,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -1288,7 +1293,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -1322,7 +1327,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_FILE_TRUSTMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
index dbba3d6..73c03be 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
@@ -41,8 +41,8 @@
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -58,6 +58,11 @@
 public class FilteredStaticGroupMemberList
        extends MemberList
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -224,7 +229,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_STATICMEMBERS_CANNOT_GET_ENTRY;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
index 1c0e55e..9f3c221 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -55,8 +55,8 @@
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -75,6 +75,11 @@
        implements ConfigurationChangeListener<
                        FingerprintCertificateMapperCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type that will be used to map the certificate's fingerprint.
   private AttributeType fingerprintAttributeType;
 
@@ -181,7 +186,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_FCM_PEER_CERT_NOT_X509;
@@ -205,7 +210,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       String peerSubject = peerCertificate.getSubjectX500Principal().getName(
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
index 4cc7d1c..84a9261 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
@@ -51,8 +51,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -70,6 +70,11 @@
        implements ConfigurationChangeListener<
                        GSSAPISASLMechanismHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the configuration entry for this SASL mechanism handler.
   private DN configEntryDN;
 
@@ -136,7 +141,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_SASLGSSAPI_CANNOT_GET_SERVER_FQDN;
@@ -195,7 +200,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SASLGSSAPI_CANNOT_CREATE_JAAS_CONFIG;
@@ -261,7 +266,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         bindOperation.setAuthFailureReason(ie.getMessageID(), ie.getMessage());
@@ -298,7 +303,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -437,7 +442,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         if (resultCode == ResultCode.SUCCESS)
@@ -498,7 +503,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         resultCode = DirectoryServer.getServerErrorResultCode();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java
index 8927486..55b8ed7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java
@@ -51,8 +51,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -68,6 +68,11 @@
 public class GSSAPIStateInfo
        implements PrivilegedExceptionAction<Boolean>, CallbackHandler
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -136,7 +141,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SASLGSSAPI_CANNOT_CREATE_LOGIN_CONTEXT;
@@ -152,7 +157,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SASLGSSAPI_CANNOT_AUTHENTICATE_SERVER;
@@ -210,7 +215,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -233,7 +238,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -273,7 +278,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_SASLGSSAPI_CANNOT_CREATE_SASL_SERVER;
@@ -320,7 +325,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -331,7 +336,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
       }
 
@@ -369,7 +374,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -391,7 +396,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       try
@@ -402,7 +407,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -426,7 +431,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -463,7 +468,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
index b4ced1b..b455392 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
@@ -53,6 +53,7 @@
 import org.opends.server.types.VirtualAttributeRule;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 
 
@@ -66,6 +67,11 @@
        extends VirtualAttributeProvider<VirtualAttributeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new instance of this entryDN virtual attribute provider.
    */
   public IsMemberOfVirtualAttributeProvider()
@@ -125,7 +131,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -155,7 +161,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -189,7 +195,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -374,7 +380,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -424,7 +430,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
index c54b1b6..e9ef5d7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
@@ -58,8 +58,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -77,6 +77,11 @@
        implements AlertHandler, DynamicMBean, DirectoryServerMBean
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -155,7 +160,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_JMX_ALERT_HANDLER_CANNOT_REGISTER;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
index 3e791c8..c566b5d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
@@ -46,10 +46,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -69,6 +69,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -114,7 +119,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -158,7 +163,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -201,7 +206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -242,7 +247,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -261,7 +266,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.EXTENSIONS, ErrorLogSeverity.MILD_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
index 1432512..9958ec3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
@@ -54,6 +54,7 @@
 import org.opends.server.types.VirtualAttributeRule;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 
 
@@ -67,6 +68,11 @@
        extends VirtualAttributeProvider<MemberVirtualAttributeCfg>
        implements ConfigurationChangeListener<MemberVirtualAttributeCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type used to indicate which target group should be used to
   // obtain the member list.
   private AttributeType targetGroupType;
@@ -163,7 +169,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -211,7 +217,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -241,7 +247,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java
index 64c0a70..b007350 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java
@@ -41,8 +41,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -56,6 +56,11 @@
 public class NullConnectionSecurityProvider
        extends ConnectionSecurityProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -311,7 +316,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ioe);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
         }
 
         // An error occurred while trying to read data from the client.
@@ -323,7 +328,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // An unexpected error occurred.  Disconnect and return.
@@ -380,7 +385,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
 
       // An error occurred while trying to write data to the client.  Disconnect
@@ -392,7 +397,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An unexpected error occurred.  Disconnect and return.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
index a00b9fc..4ce4364 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
@@ -55,8 +55,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -73,6 +73,11 @@
     KeyManagerProvider<PKCS11KeyManagerCfg> implements
     ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -180,7 +185,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -189,7 +194,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -230,7 +235,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -239,7 +244,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -308,7 +313,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         throw ie;
@@ -317,7 +322,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -345,7 +350,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -441,7 +446,7 @@
       } catch (IOException ioe) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ioe);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
         }
 
         int msgID = MSGID_PKCS11_KEYMANAGER_PIN_FILE_CANNOT_READ;
@@ -508,7 +513,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_LOAD;
@@ -530,7 +535,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_CREATE_FACTORY;
@@ -672,7 +677,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -714,7 +719,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -786,7 +791,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -815,7 +820,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
@@ -912,7 +917,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_PROPERTY;
@@ -965,7 +970,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_ENVAR;
@@ -1058,7 +1063,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FILE;
@@ -1092,7 +1097,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_PKCS11_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index 647283a..70fe7ef 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -72,8 +72,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -95,6 +95,11 @@
        implements ConfigurationChangeListener<
                     PasswordModifyExtendedOperationHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -159,7 +164,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER;
       String message = getMessage(msgID, String.valueOf(config.dn()),
@@ -276,7 +281,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
 
         operation.setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -364,7 +369,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             operation.setResultCode(ResultCode.INVALID_DN_SYNTAX);
@@ -423,7 +428,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             if (oldPassword == null)
@@ -470,7 +475,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         operation.setResultCode(DirectoryServer.getServerErrorResultCode());
@@ -786,7 +791,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           if (oldPassword == null)
@@ -918,7 +923,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           if (oldPassword == null)
@@ -986,7 +991,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               // We couldn't decode the provided password value, so remove it
@@ -1025,7 +1030,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               // We couldn't decode the provided password value, so remove it
@@ -1231,7 +1236,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
             break;
           }
@@ -1248,7 +1253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       operation.setResultCode(de.getResultCode());
@@ -1298,7 +1303,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER;
@@ -1357,7 +1362,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       resultCode = DirectoryServer.getServerErrorResultCode();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
index 51e2f27..0660e20 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
@@ -53,8 +53,8 @@
 import org.opends.server.types.Privilege;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -79,6 +79,11 @@
        implements ConfigurationChangeListener<
                        PlainSASLMechanismHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the configuration entry for this SASL mechanism handler.
   private DN configEntryDN;
 
@@ -241,7 +246,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -298,7 +303,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -330,7 +335,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -377,7 +382,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -435,7 +440,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, de);
+                TRACER.debugCaught(DebugLogLevel.ERROR, de);
               }
 
               bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -484,7 +489,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
@@ -539,7 +544,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
index a2e6d6a..e87f62a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
@@ -54,8 +54,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -72,6 +72,11 @@
        extends PasswordGenerator<RandomPasswordGeneratorCfg>
        implements ConfigurationChangeListener<RandomPasswordGeneratorCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   // The current configuration for this password validator.
   private RandomPasswordGeneratorCfg currentConfig;
@@ -152,7 +157,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS;
@@ -204,7 +209,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           msgID = MSGID_RANDOMPWGEN_INVALID_PWFORMAT;
@@ -232,7 +237,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT;
@@ -395,7 +400,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS;
@@ -436,7 +441,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             msgID = MSGID_RANDOMPWGEN_INVALID_PWFORMAT;
@@ -450,7 +455,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT;
@@ -532,7 +537,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS;
@@ -589,7 +594,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           msgID = MSGID_RANDOMPWGEN_INVALID_PWFORMAT;
@@ -606,7 +611,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
index c7ea84e..3ecd9e2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
@@ -46,10 +46,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -69,6 +69,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -114,7 +119,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -158,7 +163,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -201,7 +206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -241,7 +246,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -260,7 +265,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.EXTENSIONS, ErrorLogSeverity.MILD_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
index 99dd271..30ce90a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
@@ -47,10 +47,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -72,6 +72,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -128,7 +133,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -186,7 +191,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -248,7 +253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -299,7 +304,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
@@ -330,7 +335,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -399,7 +404,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -445,7 +450,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
index 7fc0669..b1b891b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
@@ -47,10 +47,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -72,6 +72,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -128,7 +133,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -185,7 +190,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -247,7 +252,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -298,7 +303,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
@@ -329,7 +334,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -398,7 +403,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -444,7 +449,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
index ac9b965..8e027ae 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
@@ -47,10 +47,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -72,6 +72,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -130,7 +135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -188,7 +193,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -250,7 +255,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -301,7 +306,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
@@ -332,7 +337,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -401,7 +406,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -447,7 +452,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
index c46726c..a551f68 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
@@ -47,10 +47,10 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -72,6 +72,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -130,7 +135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -188,7 +193,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -250,7 +255,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -301,7 +306,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
@@ -332,7 +337,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -401,7 +406,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -447,7 +452,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
index 75ef26c..f1029c4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
@@ -47,9 +47,9 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.extensions.ExtensionsConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -72,6 +72,11 @@
        extends PasswordStorageScheme <PasswordStorageSchemeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -130,7 +135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_INITIALIZE_MESSAGE_DIGEST;
@@ -187,7 +192,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -249,7 +254,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -300,7 +305,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_BASE64_DECODE_STORED_PASSWORD;
@@ -331,7 +336,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -400,7 +405,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_PWSCHEME_CANNOT_ENCODE_PASSWORD;
@@ -446,7 +451,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
index 88daa8f..e0ab8d7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
@@ -39,8 +39,8 @@
 import org.opends.server.types.MemberList;
 import org.opends.server.types.MembershipException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -56,6 +56,11 @@
 public class SimpleStaticGroupMemberList
        extends MemberList
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -147,7 +152,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_STATICMEMBERS_CANNOT_GET_ENTRY;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
index ee2a1b7..6033cce 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
@@ -58,8 +58,8 @@
 
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -78,6 +78,11 @@
         ConfigurationChangeListener<SoftReferenceEntryCacheCfg>,
         Runnable
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   // The set of time units that will be used for expressing the task retention
@@ -291,7 +296,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 // The attempt to add the lock to the list failed, so we need to
@@ -304,7 +309,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e2);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e2);
                   }
                 }
 
@@ -332,7 +337,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 // The attempt to add the lock to the list failed, so we need to
@@ -345,7 +350,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e2);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e2);
                   }
                 }
 
@@ -413,7 +418,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -426,7 +431,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -454,7 +459,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // The attempt to add the lock to the list failed, so we need to
@@ -467,7 +472,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e2);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e2);
               }
             }
 
@@ -509,7 +514,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does then we can't be sure whether
@@ -539,7 +544,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does, then just ignore it.
@@ -605,7 +610,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does then we can't be sure whether
@@ -635,7 +640,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // This shouldn't happen, but if it does, then just ignore it.
@@ -1025,7 +1030,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java
index 2711dcb..8faad76 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java
@@ -40,10 +40,10 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -60,6 +60,11 @@
 public class StartTLSExtendedOperation
        extends ExtendedOperationHandler<ExtendedOperationHandlerCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -177,7 +182,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       logError(ErrorLogCategory.CORE_SERVER, ErrorLogSeverity.MILD_ERROR,
@@ -198,7 +203,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.CORE_SERVER, ErrorLogSeverity.MILD_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java
index 81e0e05..faf8172 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java
@@ -57,10 +57,10 @@
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -79,6 +79,11 @@
 public class StaticGroup
        extends Group
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type used to hold the membership list for this group.
   private AttributeType memberAttributeType;
 
@@ -206,7 +211,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_STATICGROUP_CANNOT_DECODE_MEMBER_VALUE_AS_DN;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
index 5106a8b..088d845 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -57,8 +57,8 @@
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -80,6 +80,11 @@
        implements ConfigurationChangeListener<
                   SubjectAttributeToUserAttributeCertificateMapperCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the configuration entry for this certificate mapper.
   private DN configEntryDN;
 
@@ -220,7 +225,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SATUACM_PEER_CERT_NOT_X509;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
index 2a01254..0aa204e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
@@ -55,8 +55,8 @@
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchScope;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -76,6 +76,11 @@
        implements ConfigurationChangeListener<
                        SubjectDNToUserAttributeCertificateMapperCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type that will be used to map the certificate's subject.
   private AttributeType subjectAttributeType;
 
@@ -169,7 +174,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SDTUACM_PEER_CERT_NOT_X509;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
index 99e8ed1..42ec32f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
@@ -44,8 +44,8 @@
 import org.opends.server.types.LockManager;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -62,6 +62,11 @@
        extends CertificateMapper<CertificateMapperCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new instance of this certificate mapper.  Note that all actual
    * initialization should be done in the
    * <CODE>initializeCertificateMapper</CODE> method.
@@ -129,7 +134,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SEDCM_PEER_CERT_NOT_X509;
@@ -151,7 +156,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SEDCM_CANNOT_DECODE_SUBJECT_AS_DN;
@@ -193,7 +198,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       int    msgID   = MSGID_SEDCM_CANNOT_GET_ENTRY;
@@ -206,7 +211,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SEDCM_CANNOT_GET_ENTRY;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubschemaSubentryVirtualAttributeProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubschemaSubentryVirtualAttributeProvider.java
index df7f2af..a4492ae 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/SubschemaSubentryVirtualAttributeProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/SubschemaSubentryVirtualAttributeProvider.java
@@ -45,6 +45,7 @@
 import org.opends.server.types.VirtualAttributeRule;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -59,6 +60,11 @@
        extends VirtualAttributeProvider<VirtualAttributeCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new instance of this subschemaSubentry virtual attribute
    * provider.
    */
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java
index 97b6ef8..1786722 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java
@@ -52,8 +52,8 @@
 import org.opends.server.types.SSLClientAuthPolicy;
 import org.opends.server.util.SelectableCertificateKeyManager;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -71,6 +71,11 @@
 public class TLSConnectionSecurityProvider
        extends ConnectionSecurityProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -208,7 +213,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_TLS_SECURITY_PROVIDER_CANNOT_INITIALIZE;
@@ -454,7 +459,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -641,7 +646,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ioe);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
         }
 
         // An error occurred while trying to communicate with the client.
@@ -653,7 +658,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // An unexpected error occurred while trying to process the data read.
@@ -941,7 +946,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
 
       // An error occurred while trying to communicate with the client.
@@ -953,7 +958,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // An unexpected error occurred while trying to process the data read.
@@ -1075,7 +1080,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
index c35971f..de670ba 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
@@ -57,8 +57,9 @@
 import org.opends.server.types.ResultCode;
 
 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.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -73,6 +74,11 @@
        extends WorkQueue
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -187,7 +193,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_NUM_WORKER_THREADS;
@@ -236,7 +242,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_QUEUE_CAPACITY;
@@ -290,7 +296,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_CREATE_MONITOR;
@@ -326,7 +332,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.CORE_SERVER, ErrorLogSeverity.SEVERE_WARNING,
@@ -347,7 +353,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.CORE_SERVER, ErrorLogSeverity.SEVERE_WARNING,
@@ -474,7 +480,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
       finally
@@ -537,7 +543,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
             finally
@@ -576,7 +582,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This should not happen.  The only recourse we have is to log a message
@@ -755,7 +761,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_NUM_WORKER_THREADS;
@@ -802,7 +808,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_QUEUE_CAPACITY;
@@ -881,7 +887,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_NUM_WORKER_THREADS;
@@ -929,7 +935,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_CONFIG_WORK_QUEUE_CANNOT_DETERMINE_QUEUE_CAPACITY;
@@ -987,7 +993,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
       finally
@@ -1046,7 +1052,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, ie);
+                TRACER.debugCaught(DebugLogLevel.ERROR, ie);
               }
             }
           }
@@ -1065,7 +1071,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
       finally
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
index f320e74..4978266 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
@@ -40,8 +40,9 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.Operation;
 
-import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -54,6 +55,11 @@
 public class TraditionalWorkerThread
        extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether the Directory Server is shutting down and this thread
   // should stop running.
   private boolean shutdownRequested;
@@ -174,11 +180,11 @@
       {
         if (debugEnabled())
         {
-          debugWarning(
+          TRACER.debugWarning(
             "Uncaught exception in worker thread while processing " +
                 "operation %s: %s", String.valueOf(operation), e);
 
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         try
@@ -199,11 +205,11 @@
         {
           if (debugEnabled())
           {
-            debugWarning(
+            TRACER.debugWarning(
               "Exception in worker thread while trying to log a " +
                   "message about an uncaught exception %s: %s", e, e2);
 
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
 
@@ -222,7 +228,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e2);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e2);
           }
         }
       }
@@ -245,7 +251,7 @@
 
     if (debugEnabled())
     {
-      debugInfo(getName() + " exiting.");
+      TRACER.debugInfo(getName() + " exiting.");
     }
   }
 
@@ -259,7 +265,7 @@
   {
     if (debugEnabled())
     {
-      debugInfo(getName() + " being signaled to shut down.");
+      TRACER.debugInfo(getName() + " being signaled to shut down.");
     }
 
     // Set a flag that indicates that the thread should stop running.
@@ -278,10 +284,10 @@
       {
         if (debugEnabled())
         {
-          debugWarning(
+          TRACER.debugWarning(
             "Caught an exception while trying to interrupt the worker " +
                 "thread waiting for work: %s", e);
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -297,10 +303,10 @@
       {
         if (debugEnabled())
         {
-          debugWarning(
+          TRACER.debugWarning(
             "Caught an exception while trying to abandon the " +
                 "operation in progress for the worker thread: %s", e);
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/VirtualStaticGroup.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/VirtualStaticGroup.java
index 2ff7c80..ee11e00 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/VirtualStaticGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/VirtualStaticGroup.java
@@ -51,6 +51,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ExtensionsMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -65,6 +66,11 @@
 public class VirtualStaticGroup
        extends Group
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN of the entry that holds the definition for this group.
   private DN groupEntryDN;
 
@@ -158,7 +164,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             int    msgID   = MSGID_VIRTUAL_STATIC_GROUP_CANNOT_DECODE_TARGET;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java b/opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java
index 774eafc..c71097f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java
@@ -34,6 +34,7 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -58,6 +59,11 @@
        extends DN
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The serial version identifier required to satisfy the compiler because this
    * class implements the {@code java.io.Serializable} interface.  This value
    * was generated using the {@code serialver} command-line utility included
@@ -336,7 +342,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         throw new RuntimeException(stackTraceToSingleLineString(e));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
index b27e578..4c33238 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
@@ -45,8 +45,8 @@
 import org.opends.server.admin.server.ConfigurationDeleteListener;
 import org.opends.server.admin.ClassPropertyDefinition;
 import org.opends.server.config.ConfigException;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.
     MSGID_CONFIG_LOGGER_CANNOT_CREATE_LOGGER;
 import static org.opends.server.messages.ConfigMessages.
@@ -64,6 +64,11 @@
     ConfigurationDeleteListener<AccessLogPublisherCfg>,
     ConfigurationChangeListener<AccessLogPublisherCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of access loggers that have been registered with the server.  It
    // will initially be empty.
    static ConcurrentHashMap<DN, AccessLogPublisher> accessPublishers =
@@ -197,7 +202,7 @@
        {
          if (debugEnabled())
          {
-           debugCaught(DebugLogLevel.ERROR, e);
+           TRACER.debugCaught(DebugLogLevel.ERROR, e);
          }
          messages.add(e.getMessage());
          resultCode = DirectoryServer.getServerErrorResultCode();
@@ -206,7 +211,7 @@
        {
          if (debugEnabled())
          {
-           debugCaught(DebugLogLevel.ERROR, e);
+           TRACER.debugCaught(DebugLogLevel.ERROR, e);
          }
          int msgID = MSGID_CONFIG_LOGGER_CANNOT_CREATE_LOGGER;
          messages.add(getMessage(msgID, String.valueOf(config.dn().toString()),
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
index 656b072..4d2fd39 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
@@ -47,6 +47,7 @@
 import org.opends.server.core.DirectoryServer;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -61,6 +62,11 @@
     ConfigurationDeleteListener<ErrorLogPublisherCfg>,
     ConfigurationChangeListener<ErrorLogPublisherCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of error loggers that have been registered with the server. It
   // will initially be empty.
   private static ConcurrentHashMap<DN, ErrorLogPublisher> errorPublishers =
@@ -193,7 +199,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         messages.add(e.getMessage());
         resultCode = DirectoryServer.getServerErrorResultCode();
@@ -202,7 +208,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int msgID = MSGID_CONFIG_LOGGER_CANNOT_CREATE_LOGGER;
         messages.add(getMessage(msgID, String.valueOf(config.dn().toString()),
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
index 9639fe7..b0c55b9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
@@ -34,8 +34,8 @@
 import java.util.List;
 import java.util.ArrayList;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+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;
 
@@ -47,6 +47,11 @@
     RetentionPolicy<FileCountLogRetentionPolicyCfg>,
     ConfigurationChangeListener<FileCountLogRetentionPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private int numFiles = 0;
 
@@ -108,7 +113,7 @@
     {
       if(debugEnabled())
       {
-        debugInfo("Deleting log file:", files[j]);
+        TRACER.debugInfo("Deleting log file:", files[j]);
       }
       files[j].delete();
       count++;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java
index e35d86f..5acbfed 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java
@@ -30,8 +30,8 @@
 
 import org.opends.server.util.TimeThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.admin.std.server.FixedTimeLogRotationPolicyCfg;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.types.ConfigChangeResult;
@@ -45,6 +45,11 @@
     RotationPolicy<FixedTimeLogRotationPolicyCfg>,
     ConfigurationChangeListener<FixedTimeLogRotationPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private static final long MS_IN_DAY = 24 * 3600 * 1000;
 
@@ -141,8 +146,8 @@
 
     if (debugEnabled())
     {
-      debugInfo("As of %d, the next rotation at fixed time is: %d",
-                currTime, nextRotationTime);
+      TRACER.debugInfo("The next fixed rotation time in %ds",
+                       (currTime - nextRotationTime)/1000);
     }
 
     return currTime > nextRotationTime;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
index b3cc34e..c6ee347 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
@@ -32,9 +32,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.ConfigChangeResult;
@@ -50,6 +49,11 @@
     RetentionPolicy<FreeDiskSpaceLogRetentionPolicyCfg>,
     ConfigurationChangeListener<FreeDiskSpaceLogRetentionPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private long freeDiskSpace = 0;
 
@@ -121,14 +125,14 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return 0;
     }
 
           if(debugEnabled())
       {
-        debugInfo("Current free disk space: %d, Required: %d", freeSpace,
+        TRACER.debugInfo("Current free disk space: %d, Required: %d", freeSpace,
                   freeDiskSpace);
       }
 
@@ -149,7 +153,7 @@
       freedSpace += files[j].length();
       if(debugEnabled())
       {
-        debugInfo("Deleting log file:", files[j]);
+        TRACER.debugInfo("Deleting log file:", files[j]);
       }
       files[j].delete();
       if (freedSpace >= freeSpaceNeeded)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java
index d7e06bc..a79730c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java
@@ -32,8 +32,8 @@
 import java.io.IOException;
 import java.util.zip.GZIPOutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
@@ -42,6 +42,11 @@
  */
 public class GZIPAction implements PostRotationAction
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private File originalFile;
   private File newFile;
@@ -118,7 +123,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
       if (inputStreamOpen)
       {
@@ -130,7 +135,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, fe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, fe);
           }
           // Cannot do much. Ignore.
         }
@@ -145,7 +150,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ge);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ge);
           }
           // Cannot do much. Ignore.
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
index ef50064..540d8a3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
@@ -36,9 +36,8 @@
 import org.opends.server.util.TimeThread;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.LoggerMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.loggers.ErrorLogger.*;
@@ -61,6 +60,11 @@
     implements ServerShutdownListener, TextWriter,
     ConfigurationChangeListener<SizeLimitLogRotationPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private static final String UTF8_ENCODING= "UTF-8";
 
   private CopyOnWriteArrayList<RotationPolicy> rotationPolicies =
@@ -264,6 +268,8 @@
         sizePolicy.currentConfig.removeSizeLimitChangeListener(this);
       }
     }
+
+    this.rotationPolicies.clear();
   }
 
   /**
@@ -406,7 +412,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -430,7 +436,7 @@
           }
           if (debugEnabled())
           {
-            debugVerbose("%d files deleted by rentention policy",
+            TRACER.debugVerbose("%d files deleted by rentention policy",
                          numFilesDeleted);
           }
         }
@@ -570,6 +576,10 @@
     }
     catch(Exception e)
     {
+      if(debugEnabled())
+      {
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      }
       errorHandler.handleCloseError(e);
     }
 
@@ -584,6 +594,10 @@
     }
     catch (Exception e)
     {
+      if(debugEnabled())
+      {
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      }
       errorHandler.handleOpenError(currentFile, e);
     }
 
@@ -591,6 +605,12 @@
     //  new RotationActionThread(newFile, actions, configEntry);
     //rotThread.start();
 
+    if(debugEnabled())
+    {
+      TRACER.debugInfo("Log file %s rotated and renamed to %s",
+                       currentFile, newFile);
+    }
+
     totalFilesRotated++;
     lastRotationTime = TimeThread.getTime();
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java
index 45b5430..62b638e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java
@@ -31,8 +31,8 @@
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.config.ConfigEntry;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
@@ -42,6 +42,11 @@
  */
 public class RotationActionThread extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private ArrayList<ActionType> actions;
   private String filename;
@@ -116,7 +121,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
index a0cfb15..0876a93 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
@@ -28,8 +28,8 @@
 
 import org.opends.server.admin.std.server.SizeLimitLogRetentionPolicyCfg;
 import org.opends.server.admin.server.ConfigurationChangeListener;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+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;
 
@@ -46,6 +46,11 @@
     RetentionPolicy<SizeLimitLogRetentionPolicyCfg>,
     ConfigurationChangeListener<SizeLimitLogRetentionPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private long size = 0;
 
@@ -103,7 +108,7 @@
 
     if(debugEnabled())
     {
-      debugInfo("Total size of files: %d, Max: %d", totalLength, size);
+      TRACER.debugInfo("Total size of files: %d, Max: %d", totalLength, size);
     }
 
     if (totalLength <= size)
@@ -122,7 +127,7 @@
       freedSpace += files[j].length();
       if(debugEnabled())
       {
-        debugInfo("Deleting log file:", files[j]);
+        TRACER.debugInfo("Deleting log file:", files[j]);
       }
       files[j].delete();
       if (freedSpace >= freeSpaceNeeded)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java
index ab88405..b38afc0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java
@@ -27,8 +27,8 @@
 package org.opends.server.loggers;
 
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.admin.std.server.SizeLimitLogRotationPolicyCfg;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.types.InitializationException;
@@ -47,6 +47,11 @@
     RotationPolicy<SizeLimitLogRotationPolicyCfg>,
     ConfigurationChangeListener<SizeLimitLogRotationPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private long sizeLimit;
 
@@ -101,15 +106,16 @@
   */
   public boolean rotateFile(MultifileTextWriter writer)
   {
-    if (writer.getBytesWritten() >= sizeLimit)
+    long fileSize = writer.getBytesWritten();
+
+    if (debugEnabled())
     {
-      if (debugEnabled())
-      {
-        debugInfo("%d bytes written in current file", writer.getBytesWritten());
-      }
-      return true;
+      TRACER.debugInfo("%d bytes written in current log file. " +
+          "Next rotation occurs at %d bytes", writer.getBytesWritten(),
+                                              sizeLimit);
     }
-    return false;
+
+    return fileSize >= sizeLimit;
   }
 
 }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java
index 7501deb..eed1593 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java
@@ -31,6 +31,8 @@
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.ResultCode;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -43,6 +45,11 @@
     RotationPolicy<TimeLimitLogRotationPolicyCfg>,
     ConfigurationChangeListener<TimeLimitLogRotationPolicyCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private long timeInterval = 0;
 
   /**
@@ -92,7 +99,16 @@
   public boolean rotateFile(MultifileTextWriter writer)
   {
     long currTime = TimeThread.getTime();
-    return currTime - writer.getLastRotationTime() > timeInterval;
+    long currInterval = currTime - writer.getLastRotationTime();
+
+    if (debugEnabled())
+    {
+      TRACER.debugInfo("Last rotation occured %ds ago. " +
+          "Next rotation in %ds", currInterval / 1000,
+                                   (timeInterval - currInterval)/1000);
+    }
+
+    return currInterval > timeInterval;
   }
 
 }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java
index 0ebac3b..1264ea9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java
@@ -33,8 +33,8 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
@@ -43,6 +43,11 @@
  */
 public class ZIPAction implements PostRotationAction
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private File originalFile;
   private File newFile;
@@ -122,7 +127,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ioe);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
       }
       if (inputStreamOpen)
       {
@@ -134,7 +139,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, fe);
+            TRACER.debugCaught(DebugLogLevel.ERROR, fe);
           }
           // Cannot do much. Ignore.
         }
@@ -149,7 +154,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ze);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ze);
           }
           // Cannot do much. Ignore.
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugAspect.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugAspect.java
new file mode 100644
index 0000000..f306939
--- /dev/null
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugAspect.java
@@ -0,0 +1,289 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ */
+package org.opends.server.loggers.debug;
+
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.JoinPoint;
+
+import static
+    org.opends.server.loggers.debug.DebugLogger.DEFAULT_CONSTRUCTOR_LEVEL;
+import static
+    org.opends.server.loggers.debug.DebugLogger.DEFAULT_ENTRY_EXIT_LEVEL;
+import static
+    org.opends.server.loggers.debug.DebugLogger.DEFAULT_THROWN_LEVEL;
+
+/**
+ * An aspect for source-code tracing at the method level.
+ *
+ * One DebugLogger aspect instance exists for each Java class using tracing.
+ * Tracer must be registered with the DebugLogger.
+ *
+ * Logging is always done at a level basis, with debug log messages
+ * exceeding the trace threshold being traced, others being discarded.
+ */
+@Aspect()
+public class DebugAspect
+{
+  /**
+   * Pointcut for matching static context events.
+   */
+  @Pointcut("!this(Object)")
+  private void staticContext()
+  {
+  }
+
+  /**
+   * Pointcut for matching non static context events.
+   * @param obj The object being operated on.
+   */
+  @Pointcut("this(obj)")
+  private void nonStaticContext(Object obj)
+  {
+  }
+
+  /**
+   * Pointcut for matching all toString() methods.
+   */
+  @Pointcut("execution(* *..toString(..))")
+  private void toStringMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching all getMessage() methods.
+   */
+  @Pointcut("execution(String org.opends.server." +
+      "messages.MessageHandler.getMessage(..))")
+  private void getMessageMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching the getDirectoryThreadGroup method.
+   */
+  @Pointcut("execution(public static ThreadGroup org.opends.server." +
+      "core.DirectoryServer.getDirectoryThreadGroup(..))")
+  private void getThreadGroupMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching all getDebugProperties() methods.
+   * TODO: Make this less general. Find out if pointcut matches
+   * subclass methods.
+   */
+  @Pointcut("execution(* *..getDebugProperties(..))")
+  private void getDebugPropertiesMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching all logging related classes.
+   */
+  @Pointcut("within(org.opends.server.loggers.*+ || " +
+    "org.opends.server.loggers.debug..*+ || " +
+    "org.opends.server.types.DebugLogLevel+ || " +
+    "org.opends.server.types.DebugLogCategory+ || " +
+    "org.opends.server.api.DebugLogPublisher+ || " +
+    "org.opends.server.util.TimeThread+ ||" +
+    "org.opends.server.util.MultiOutputStream+)")
+  private void debugRelatedClasses()
+  {
+  }
+
+  /**
+   * Pointcut to exclude all pointcuts which should not be adviced by the
+   * debug logger.
+   */
+  @Pointcut("toStringMethod() || getMessageMethod() || " +
+      "getDebugPropertiesMethod() || debugRelatedClasses() || " +
+      "getThreadGroupMethod()")
+  private void excluded()
+  {
+  }
+
+  /**
+   * Pointcut for matching the execution of all public methods.
+   */
+  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
+      "DebugLogger.NoEntryDebugTracing) public * *(..)) && " +
+      "!excluded()")
+  void tracedEntryMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching the execution of all public methods.
+   */
+  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
+      "DebugLogger.NoExitDebugTracing) public * *(..)) && " +
+      "!excluded()")
+  void tracedExitMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching the execution of all public methods.
+   */
+  @Pointcut("execution(@DebugLogger.TraceThrown public * *(..)) && " +
+      "!excluded()")
+  void tracedThrownMethod()
+  {
+  }
+
+  /**
+   * Pointcut for matching the execution of all constructors.
+   */
+  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
+      "DebugLogger.NoEntryDebugTracing) public new(..)) && !excluded()")
+  void tracedEntryConstructor()
+  {
+  }
+
+  /**
+   * Pointcut for matching the execution of all constructors.
+   */
+  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
+      "DebugLogger.NoExitDebugTracing) public new(..)) && !excluded()")
+  void tracedExitConstructor()
+  {
+  }
+
+  /**
+   * Pointcut for matching only if there are publishers.
+   *
+   * @return if debug logging is enabled.
+   */
+  @Pointcut("if()")
+  public static boolean shouldTrace()
+  {
+    return DebugLogger.enabled;
+  }
+
+  /**
+   * AspectJ Implementation.
+   *
+   * @param thisJoinPoint the JoinPoint reflection object.
+   */
+  @Before("shouldTrace() && tracedEntryConstructor()")
+  public void traceConstructor(JoinPoint thisJoinPoint)
+  {
+    String signature =
+        thisJoinPoint.getSignature().getDeclaringTypeName();
+    Object[] args = thisJoinPoint.getArgs();
+    DebugTracer tracer = DebugLogger.getTracer(signature);
+    if(tracer != null)
+    {
+      tracer.debugConstructor(
+          DEFAULT_CONSTRUCTOR_LEVEL, args);
+    }
+  }
+
+  /**
+   * AspectJ Implementation.
+   *
+   * @param thisJoinPoint the JoinPoint reflection object.
+   * @param obj the object this method operations on.
+   */
+  @Before("shouldTrace() && tracedEntryMethod() && nonStaticContext(obj)")
+  public void traceNonStaticMethodEntry(JoinPoint thisJoinPoint, Object obj)
+  {
+    String signature =
+        thisJoinPoint.getSignature().getDeclaringTypeName();
+    Object[] args = thisJoinPoint.getArgs();
+    Object callerInstance = thisJoinPoint.getThis();
+    DebugTracer tracer = DebugLogger.getTracer(signature);
+    if(tracer != null)
+    {
+      tracer.debugMethodEntry(
+          DEFAULT_ENTRY_EXIT_LEVEL, callerInstance, args);
+    }
+  }
+
+  /**
+   * AspectJ Implementation.
+   *
+   * @param thisJoinPoint the JoinPoint reflection object.
+   */
+  @Before("shouldTrace() && tracedEntryMethod() && staticContext()")
+  public void traceStaticMethodEntry(JoinPoint thisJoinPoint)
+  {
+    String signature =
+        thisJoinPoint.getSignature().getDeclaringTypeName();
+    Object[] args = thisJoinPoint.getArgs();
+    DebugTracer tracer = DebugLogger.getTracer(signature);
+    if(tracer != null)
+    {
+      tracer.debugStaticMethodEntry(
+          DEFAULT_ENTRY_EXIT_LEVEL, args);
+    }
+  }
+
+  /**
+   * AspectJ Implementation.
+   *
+   * @param thisJoinPointStaticPart the JoinPoint reflection object.
+   * @param ret the return value of the method.
+   */
+  @AfterReturning(pointcut = "shouldTrace() && " +
+      "(tracedExitMethod() || tracedExitConstructor())",
+                  returning = "ret")
+  public void traceReturn(JoinPoint.StaticPart thisJoinPointStaticPart,
+                          Object ret)
+  {
+    String signature =
+        thisJoinPointStaticPart.getSignature().getDeclaringTypeName();
+    DebugTracer tracer = DebugLogger.getTracer(signature);
+    if(tracer != null)
+    {
+      tracer.debugReturn(
+          DEFAULT_ENTRY_EXIT_LEVEL, ret);
+    }
+  }
+
+  /**
+   * AspectJ Implementation.
+   *
+   * @param thisJoinPointStaticPart the JoinPoint reflection object.
+   * @param ex the exception thrown.
+   */
+  @SuppressAjWarnings({"adviceDidNotMatch"})
+  @AfterThrowing(pointcut = "shouldTrace() && tracedThrownMethod()",
+                 throwing = "ex")
+  public void traceThrown(JoinPoint.StaticPart thisJoinPointStaticPart,
+                          Throwable ex)
+  {
+    String signature =
+        thisJoinPointStaticPart.getSignature().getDeclaringTypeName();
+    DebugTracer tracer = DebugLogger.getTracer(signature);
+    if(tracer != null)
+    {
+      tracer.debugThrown(
+          DEFAULT_THROWN_LEVEL, ex);
+    }
+  }
+}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
index 3042fa9..4f1d514 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
@@ -29,16 +29,12 @@
 
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArraySet;
-import java.nio.ByteBuffer;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
-import org.opends.server.api.ProtocolElement;
 import org.opends.server.api.DebugLogPublisher;
 import org.opends.server.loggers.*;
 import org.opends.server.types.*;
-import org.opends.server.util.DynamicConstants;
 import org.opends.server.admin.std.server.DebugLogPublisherCfg;
 import org.opends.server.admin.std.meta.DebugLogPublisherCfgDefn;
 import org.opends.server.admin.server.ConfigurationAddListener;
@@ -52,8 +48,6 @@
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
-import com.sleepycat.je.*;
-
 /**
  * A logger for debug and trace logging. DebugLogger provides a debugging
  * management access point. It is used to configure the Tracers, as well as
@@ -81,13 +75,13 @@
   static final LogLevel DEFAULT_THROWN_LEVEL =
       DebugLogLevel.ERROR;
 
-  // The set of all DebugTracer aspect instances.
-  static CopyOnWriteArraySet<DebugTracer> classTracers =
-      new CopyOnWriteArraySet<DebugTracer>();
+  // The set of all DebugTracer instances.
+  private static ConcurrentHashMap<String, DebugTracer> classTracers =
+      new ConcurrentHashMap<String, DebugTracer>();
 
   // The set of debug loggers that have been registered with the server.  It
   // will initially be empty.
-  static ConcurrentHashMap<DN,
+  private static ConcurrentHashMap<DN,
       DebugLogPublisher> debugPublishers =
       new ConcurrentHashMap<DN,
           DebugLogPublisher>();
@@ -110,10 +104,9 @@
   {
     debugPublishers.put(dn, publisher);
 
-    // Update all existing aspect instances
-    addTracerSettings(publisher);
+    updateTracerSettings();
 
-    enabled = DynamicConstants.WEAVE_ENABLED;
+    enabled = true;
   }
 
   /**
@@ -129,9 +122,10 @@
     if(removed != null)
     {
       removed.close();
-      removeTracerSettings(removed);
     }
 
+    updateTracerSettings();
+
     if(debugPublishers.isEmpty())
     {
       enabled = false;
@@ -148,11 +142,12 @@
     for(DebugLogPublisher publisher : debugPublishers.values())
     {
       publisher.close();
-      removeTracerSettings(publisher);
     }
 
     debugPublishers.clear();
 
+    updateTracerSettings();
+
     enabled = false;
   }
 
@@ -227,19 +222,11 @@
       }
       catch(ConfigException e)
       {
-        if (debugEnabled())
-        {
-          debugCaught(DebugLogLevel.ERROR, e);
-        }
         messages.add(e.getMessage());
         resultCode = DirectoryServer.getServerErrorResultCode();
       }
       catch (Exception e)
       {
-        if (debugEnabled())
-        {
-          debugCaught(DebugLogLevel.ERROR, e);
-        }
         int msgID = MSGID_CONFIG_LOGGER_CANNOT_CREATE_LOGGER;
         messages.add(getMessage(msgID, String.valueOf(config.dn().toString()),
                                 stackTraceToSingleLineString(e)));
@@ -406,57 +393,21 @@
   }
 
   /**
-   * Adds the settings for the provided publisher in all existing tracers.
-   * If existing settings exist for the given publisher, it will be updated
-   * with the new settings.
-   *
-   * @param publisher The debug log publisher with the new settings.
+   * Update all debug tracers with the settings in the registered
+   * publishers.
    */
-  @SuppressWarnings("unchecked")
-  public static void addTracerSettings(DebugLogPublisher publisher)
+  static void updateTracerSettings()
   {
-    // Make sure this publisher is still registered with us. If not, don't
-    // use its settings.
-    if(debugPublishers.contains(publisher))
-    {
-      for(DebugTracer tracer : classTracers)
-      {
-        tracer.classSettings.put(publisher,
-                                 publisher.getClassSettings(tracer.className));
+    DebugLogPublisher[] publishers =
+        debugPublishers.values().toArray(new DebugLogPublisher[0]);
 
-        // For some reason, the compiler doesn't see that
-        // debugLogPublihser.getMethodSettings returns a parameterized Map.
-        // This problem goes away if a parameterized verson of
-        // DebugLogPublisher is used. However, we can't not use reflection to
-        // instantiate a generic
-        // DebugLogPublisher<? extends DebugLogPublisherCfg> type. The only
-        // thing we can do is to just suppress the compiler warnings.
-        Map<String, TraceSettings> methodSettings =
-            publisher.getMethodSettings(tracer.className);
-        if(methodSettings != null)
-        {
-          tracer.methodSettings.put(publisher, methodSettings);
-        }
-      }
+    for(DebugTracer tracer : classTracers.values())
+    {
+      tracer.updateSettings(publishers);
     }
   }
 
   /**
-   * Removes the settings for the provided publisher in all existing tracers.
-   *
-   * @param publisher The debug log publisher to remove.
-   */
-  public static void removeTracerSettings(DebugLogPublisher publisher)
-  {
-    for(DebugTracer tracer : classTracers)
-    {
-      tracer.classSettings.remove(publisher);
-      tracer.methodSettings.remove(publisher);
-    }
-  }
-
-
-  /**
    * Indicates if debug logging is enabled.
    *
    * @return True if debug logging is enabled. False otherwise.
@@ -477,177 +428,32 @@
   }
 
   /**
-   * Stub method for logging an arbitrary event in a method at the INFO level.
-   * Implementation provided by AspectJ.
+   * Creates a new Debug Tracer for the caller class and registers it
+   * with the Debug Logger.
    *
-   * @param msg the message to be logged.
+   * @return The tracer created for the caller class.
    */
-  public static void debugVerbose(String msg) {}
+  public static DebugTracer getTracer()
+  {
+    DebugTracer tracer =
+        new DebugTracer(debugPublishers.values().
+            toArray(new DebugLogPublisher[0]));
+    classTracers.put(tracer.getTracedClassName(), tracer);
 
+    return tracer;
+  }
 
   /**
-   * Stub method for logging an arbitrary event in a method at the INFO level.
-   * Implementation provided by AspectJ.
+   * Returns the registered Debug Tracer for a traced class.
    *
-   * @param msg the message to be logged.
+   * @param className The name of the class tracer to retrieve.
+   * @return The tracer for the provided class or null if there are
+   *         no tracers registered.
    */
-  public static void debugInfo(String msg) {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the WARNING
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg the message to be logged.
-   */
-  public static void debugWarning(String msg) {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the ERROR
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg the message to be logged.
-   */
-  public static void debugError(String msg) {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the INFO
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg     The message to be formatted and logged.
-   * @param msgArgs The set of arguments to use to replace tokens in the
-   *                format string before it is returned.
-   */
-  public static void debugVerbose(String msg, Object... msgArgs) {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the INFO
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg     The message to be formatted and logged.
-   * @param msgArgs The set of arguments to use to replace tokens in the
-   *                format string before it is returned.
-   */
-  public static void debugInfo(String msg, Object... msgArgs) {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the WARNING
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg     The message to be formatted and logged.
-   * @param msgArgs The set of arguments to use to replace tokens in the
-   *                format string before it is returned.
-   */
-  public static void debugWarning(String msg, Object... msgArgs)
-  {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method at the ERROR
-   * level. Implementation provided by AspectJ.
-   *
-   * @param msg     The message to be formatted and logged.
-   * @param msgArgs The set of arguments to use to replace tokens in the
-   *                format string before it is returned.
-   */
-  public static void debugError(String msg, Object... msgArgs)
-  {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param msg   The message to be logged.
-   */
-  public static void debugMessage(LogLevel level, String msg)
-  {}
-
-
-  /**
-   * Stub method for logging an arbitrary event in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level   The level of the message being logged.
-   * @param msg     The message to be formatted and logged.
-   * @param msgArgs The set of arguments to use to replace tokens in the
-   *                format string before it is returned.
-   */
-  public static void debugMessage(LogLevel level, String msg,
-                                  Object... msgArgs) {}
-
-
-  /**
-   * Stub method for logging a caught exception in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param t     The exception caught.
-   */
-  public static void debugCaught(LogLevel level, Throwable t)
-  {}
-
-  /**
-   * Stub method for logging a thrown exception in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param t     The exception being thrown.
-   */
-  public static void debugThrown(LogLevel level, Throwable t)
-  {}
-
-
-  /**
-   * Stub method for logging an JE database access in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param status The JE return status code of the operation.
-   * @param database The JE database handle operated on.
-   * @param txn The JE transaction handle used in the operation.
-   * @param key The database key operated on.
-   * @param data The database value read or written.
-   */
-  public static void debugJEAccess(LogLevel level,
-                                   OperationStatus status,
-                                   Database database,
-                                   Transaction txn,
-                                   DatabaseEntry key, DatabaseEntry data) {}
-
-  /**
-   * Stub method for logging raw data in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param bytes The data to dump.
-   */
-  public static void debugData(LogLevel level, byte[] bytes) {}
-
-  /**
-   * Stub method for logging raw data in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param buffer The data to dump.
-   */
-  public static void debugData(LogLevel level, ByteBuffer buffer) {}
-
-  /**
-   * Stub method for logging a protocol element in a method.
-   * Implementation provided by AspectJ.
-   *
-   * @param level The level of the message being logged.
-   * @param element The protocol element to dump.
-   */
-  public static void debugProtocolElement(LogLevel level,
-                                          ProtocolElement element) {}
-
+  public static DebugTracer getTracer(String className)
+  {
+    return classTracers.get(className);
+  }
 
   /**
    * Classes and methods annotated with @NoDebugTracing will not be weaved with
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java
index f8b85b4..5da3423 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java
@@ -94,7 +94,7 @@
         // Skip leading frames debug logging classes
         while (firstFrame < frames.length &&
             isFrameForPackage(frames[firstFrame],
-                              "org.opends.server.loggers")) {
+                              "org.opends.server.loggers.debug")) {
           firstFrame++;
         }
 
@@ -123,32 +123,26 @@
    */
   public static String formatStackTrace(Throwable t)
   {
-    return formatStackTrace(t, null, COMPLETE_STACK, true);
+    return formatStackTrace(t, COMPLETE_STACK, true);
   }
 
   /**
    * Generate a String representation of the possibly filtered stack trace
    * of the given Throwable.
    * @param t - the Throwable for which to generate the stack trace.
-   * @param filter - a FrameFilter to use to exclude some stack frames from
-   * the trace.  If null, no filtering is performed.
    * @param maxDepth - the maximum number of stack frames to include in the
    * trace.
    * @param includeCause - also include the stack trace for the cause Throwable.
    * @return the stack trace.
    */
-  public static String formatStackTrace(Throwable t, FrameFilter filter,
-                                        int maxDepth, boolean includeCause)
+  public static String formatStackTrace(Throwable t, int maxDepth,
+                                        boolean includeCause)
   {
     StringBuffer buffer= new StringBuffer();
 
     while(t != null)
     {
       StackTraceElement[] frames = t.getStackTrace();
-      if(filter != null)
-      {
-        frames = filter.getFilteredStackTrace(frames);
-      }
 
       if (frames != null) {
         int frameLimit=  Math.min(maxDepth, frames.length);
@@ -188,37 +182,32 @@
   /**
    * Generate a String representation of the possibly filtered stack trace
    * from the current position in executation.
-   * @param filter - a FrameFilter to use to exclude some stack frames from
-   * the trace.  If null, no filtering is performed.
+   *
+   * @param stackTrace - The stack trace elements to format.
    * @param maxDepth - the maximum number of stack frames to include in the
    * trace.
    * @return the stack trace.
    */
-  public static String formatStackTrace(FrameFilter filter, int maxDepth)
+  public static String formatStackTrace(StackTraceElement[] stackTrace,
+                                        int maxDepth)
   {
     StringBuffer buffer= new StringBuffer();
 
-    StackTraceElement[] frames = Thread.currentThread().getStackTrace();
-    if(filter != null)
-    {
-      frames = filter.getFilteredStackTrace(frames);
-    }
-
-    if (frames != null) {
-      int frameLimit=  Math.min(maxDepth, frames.length);
+    if (stackTrace != null) {
+      int frameLimit=  Math.min(maxDepth, stackTrace.length);
       if (frameLimit > 0) {
 
 
         for (int i= 0; i < frameLimit; i++) {
           buffer.append("  ");
-          buffer.append(frames[i]);
+          buffer.append(stackTrace[i]);
           buffer.append(EOL);
         }
 
-        if(frameLimit < frames.length)
+        if(frameLimit < stackTrace.length)
         {
           buffer.append("  ...(");
-          buffer.append(frames.length - frameLimit);
+          buffer.append(stackTrace.length - frameLimit);
           buffer.append(" more)");
           buffer.append(EOL);
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugTracer.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugTracer.java
index a9fd60f..c2eee2a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugTracer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugTracer.java
@@ -26,8 +26,6 @@
  */
 package org.opends.server.loggers.debug;
 
-import org.aspectj.lang.annotation.*;
-import org.aspectj.lang.JoinPoint;
 import org.opends.server.api.DebugLogPublisher;
 import org.opends.server.api.ProtocolElement;
 import org.opends.server.types.DebugLogCategory;
@@ -35,288 +33,71 @@
 import org.opends.server.loggers.LogLevel;
 import org.opends.server.loggers.LogCategory;
 
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.Map;
-import java.util.Set;
 import java.nio.ByteBuffer;
 
 import com.sleepycat.je.OperationStatus;
-import com.sleepycat.je.Database;
 import com.sleepycat.je.Transaction;
 import com.sleepycat.je.DatabaseEntry;
-
-import static
-    org.opends.server.loggers.debug.DebugLogger.DEFAULT_CONSTRUCTOR_LEVEL;
-import static
-    org.opends.server.loggers.debug.DebugLogger.DEFAULT_ENTRY_EXIT_LEVEL;
-import static
-    org.opends.server.loggers.debug.DebugLogger.DEFAULT_THROWN_LEVEL;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugPublishers;
-import static
-    org.opends.server.loggers.debug.DebugLogger.classTracers;
+import com.sleepycat.je.Database;
 
 /**
- * An aspect for source-code tracing at the method level.
+ * Class for source-code tracing at the method level.
  *
- * One DebugLogger aspect instance exists for each Java class using tracing.
+ * One DebugTracer instance exists for each Java class using tracing.
  * Tracer must be registered with the DebugLogger.
  *
  * Logging is always done at a level basis, with debug log messages
  * exceeding the trace threshold being traced, others being discarded.
  */
-@Aspect("pertypewithin(!@DebugLogger.NoDebugTracing org.opends.server..*+ && " +
-    "!org.opends.server.loggers.*+ && " +
-    "!org.opends.server.loggers.debug..*+ &&" +
-    "!org.opends.server.types.DebugLogLevel+ && " +
-    "!org.opends.server.types.DebugLogCategory+ && " +
-    "!org.opends.server.api.DebugLogPublisher+ &&" +
-    "!org.opends.server.util.TimeThread+)")
+
 public class DebugTracer
 {
-    /**
-   * Pointcut for matching static context events.
-   */
-  @Pointcut("!this(Object)")
-  private void staticContext()
-  {
-  }
-
-  /**
-   * Pointcut for matching non static context events.
-   * @param obj The object being operated on.
-   */
-  @Pointcut("this(obj)")
-  private void nonStaticContext(Object obj)
-  {
-  }
-
-  /**
-   * Pointcut for matching all toString() methods.
-   */
-  @Pointcut("execution(* *..toString(..))")
-  private void toStringMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching all getMessage() methods.
-   */
-  @Pointcut("execution(String org.opends.server." +
-      "messages.MessageHandler.getMessage(..))")
-  private void getMessageMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching all getDebugProperties() methods.
-   * TODO: Make this less general. Find out if pointcut matches
-   * subclass methods.
-   */
-  @Pointcut("execution(* *..getDebugProperties(..))")
-  private void getDebugPropertiesMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugMessage() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugMessage(..))")
-  private void logMessageMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugVerbose() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugVerbose(..))")
-  private void logVerboseMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugInfo() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugInfo(..))")
-  private void logInfoMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugWarning() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugWarning(..))")
-  private void logWarningMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugError() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugError(..))")
-  private void logErrorMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugThrown() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugThrown(..))")
-  private void logThrownMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugCaught() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugCaught(..))")
-  private void logCaughtMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugJEAccess() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugJEAccess(..))")
-  private void logJEAccessMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugData() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugData(..))")
-  private void logDataMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching debugProtocolElement() methods.
-   */
-  @Pointcut("call(public static void org.opends.server." +
-      "loggers.debug.DebugLogger.debugProtocolElement(..))")
-  private void logProtocolElementMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching all debug logging methods.
-   */
-  @Pointcut("logMessageMethod() || logVerboseMethod() || logInfoMethod() || " +
-      "logWarningMethod() || logErrorMethod() || logCaughtMethod() || " +
-      "logJEAccessMethod() || logDataMethod() || logProtocolElementMethod()")
-  private void logMethods()
-  {
-  }
-
-  /**
-   * Pointcut to exclude all pointcuts which should not be adviced by the
-   * debug logger.
-   */
-  @Pointcut("toStringMethod() || getMessageMethod() || " +
-      "getDebugPropertiesMethod() || logMethods()")
-  private void excluded()
-  {
-  }
-
-  /**
-   * Pointcut for matching the execution of all public methods.
-   */
-  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
-      "DebugLogger.NoEntryDebugTracing) public * *(..)) && " +
-      "!excluded()")
-  void tracedEntryMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching the execution of all public methods.
-   */
-  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
-      "DebugLogger.NoExitDebugTracing) public * *(..)) && " +
-      "!excluded()")
-  void tracedExitMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching the execution of all public methods.
-   */
-  @Pointcut("execution(@DebugLogger.TraceThrown public * *(..)) && " +
-      "!excluded()")
-  void tracedThrownMethod()
-  {
-  }
-
-  /**
-   * Pointcut for matching the execution of all constructors.
-   */
-  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
-      "DebugLogger.NoEntryDebugTracing) public new(..)) && !excluded()")
-  void tracedEntryConstructor()
-  {
-  }
-
-  /**
-   * Pointcut for matching the execution of all constructors.
-   */
-  @Pointcut("execution(!@(DebugLogger.NoDebugTracing || " +
-      "DebugLogger.NoExitDebugTracing) public new(..)) && !excluded()")
-  void tracedExitConstructor()
-  {
-  }
-
-  /**
-   * Pointcut for matching only if there are publishers.
-   *
-   * @return if debug logging is enabled.
-   */
-  @Pointcut("if()")
-  public static boolean shouldTrace()
-  {
-    return DebugLogger.enabled;
-  }
-
   // The class this aspect traces.
-  String className;
-
-  //The current class level trace settings.
-  ConcurrentHashMap<DebugLogPublisher, TraceSettings> classSettings =
-      new ConcurrentHashMap<DebugLogPublisher, TraceSettings>();
-
-  //The current method level trace settings.
-  ConcurrentHashMap<DebugLogPublisher, Map<String, TraceSettings>>
-      methodSettings = new ConcurrentHashMap<DebugLogPublisher,
-                           Map<String, TraceSettings>>();
-
+  private String className;
 
   /**
-   * AspectJ Implementation.
+   * A class that represents a settings cache entry.
+   */
+  private class PublisherSettings
+  {
+    DebugLogPublisher debugPublisher;
+    TraceSettings classSettings;
+    Map<String, TraceSettings> methodSettings;
+  }
+
+  PublisherSettings[] publisherSettings;
+
+  /**
+   * Construct a new DebugTracer object with cached settings obtained from
+   * the provided array of publishers.
    *
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
+   * @param publishers The array of publishers to obtain the settings from.
    */
   @SuppressWarnings("unchecked")
-  @Before("staticinitialization(*)")
-  public void initializeTracer(JoinPoint.StaticPart thisJoinPointStaticPart)
+  DebugTracer(DebugLogPublisher[] publishers)
   {
-    classTracers.add(this);
-    className = thisJoinPointStaticPart.getSignature().getDeclaringTypeName();
+    // Trim off the debug logging and non OpenDS frames.
+    StackTraceElement callerFrame =
+        getCallerFrame(Thread.currentThread().getStackTrace());
+
+    // TODO: What if this is null or 0 length?
+    if(callerFrame != null)
+    {
+      // The caller should be the first item on the stack.
+      className = callerFrame.getClassName();
+    }
+
+    publisherSettings = new PublisherSettings[publishers.length];
 
     // Get the settings from all publishers.
-    for(DebugLogPublisher logPublisher :
-        debugPublishers.values())
+    for(int i = 0; i < publishers.length; i++)
     {
-      TraceSettings cSettings = logPublisher.getClassSettings(className);
-      classSettings.put(logPublisher, cSettings);
+      DebugLogPublisher publisher = publishers[i];
+      PublisherSettings settings = new PublisherSettings();
+
+      settings.debugPublisher = publisher;
+      settings.classSettings = publisher.getClassSettings(className);
 
       // For some reason, the compiler doesn't see that
       // debugLogPublihser.getMethodSettings returns a parameterized Map.
@@ -324,541 +105,729 @@
       // is used. However, we can't not use reflection to instantiate a generic
       // DebugLogPublisher<? extends DebugLogPublisherCfg> type. The only thing
       // we can do is to just supress the compiler warnings.
-      Map<String, TraceSettings> mSettings =
-          logPublisher.getMethodSettings(className);
-      if(mSettings != null)
-      {
-        methodSettings.put(logPublisher, mSettings);
-      }
+      settings.methodSettings = publisher.getMethodSettings(className);
+
+      publisherSettings[i] = settings;
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an constructor execution event.
    *
-   * @param thisJoinPoint the JoinPoint reflection object.
+   * @param level The level of the message being logged.
+   * @param args The arguments passed to the constructor.
    */
-  @Before("shouldTrace() && tracedEntryConstructor()")
-  public void traceConstructor(JoinPoint thisJoinPoint)
+  public void debugConstructor(LogLevel level, Object... args)
   {
-    String signature = thisJoinPoint.getSignature().getName();
-    String sl = thisJoinPoint.getSourceLocation().toString();
-    Object[] args = thisJoinPoint.getArgs();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DEFAULT_CONSTRUCTOR_LEVEL.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.CONSTRUCTOR).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceConstructor(DebugLogger.DEFAULT_CONSTRUCTOR_LEVEL,
-                                   settings, signature, sl, args);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.CONSTRUCTOR,
+                      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(level, DebugLogCategory.CONSTRUCTOR,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (activeSettings.noArgs)
+          {
+            args = null;
+          }
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(stackTrace);
+          }
+
+          settings.debugPublisher.traceConstructor(level,
+                                                   activeSettings, signature,
+                                                   sl, args,
+                                                   filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an non static method entry event.
    *
-   * @param thisJoinPoint the JoinPoint reflection object.
-   * @param obj the object this method operations on.
+   * @param level The level of the message being logged.
+   * @param obj The object type instance the method is a member of.
+   * @param args The arguments passed to the method.
    */
-  @Before("shouldTrace() && tracedEntryMethod() && nonStaticContext(obj)")
-  public void traceNonStaticMethodEntry(JoinPoint thisJoinPoint, Object obj)
+  public void debugMethodEntry(LogLevel level, Object obj, Object... args)
   {
-    String signature = thisJoinPoint.getSignature().getName();
-    String sl = thisJoinPoint.getSourceLocation().toString();
-    Object[] args = thisJoinPoint.getArgs();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DEFAULT_ENTRY_EXIT_LEVEL.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.ENTER).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceNonStaticMethodEntry(DEFAULT_ENTRY_EXIT_LEVEL,
-                                               settings, signature, sl, obj,
-                                               args);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.ENTER,
+                      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(level, DebugLogCategory.ENTER,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (activeSettings.noArgs)
+          {
+            args = null;
+          }
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(stackTrace);
+          }
+
+          settings.debugPublisher.traceMethodEntry(level,
+                                                   activeSettings, signature,
+                                                   sl, obj, args,
+                                                   filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an static method entry event.
    *
-   * @param thisJoinPoint the JoinPoint reflection object.
+   * @param level The level of the message being logged.
+   * @param args The arguments passed to the method.
    */
-  @Before("shouldTrace() && tracedEntryMethod() && staticContext()")
-  public void traceStaticMethodEntry(JoinPoint thisJoinPoint)
+  public void debugStaticMethodEntry(LogLevel level, Object... args)
   {
-    String signature = thisJoinPoint.getSignature().getName();
-    String sl = thisJoinPoint.getSourceLocation().toString();
-    Object[] args = thisJoinPoint.getArgs();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DEFAULT_ENTRY_EXIT_LEVEL.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.ENTER).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceStaticMethodEntry(DEFAULT_ENTRY_EXIT_LEVEL, settings,
-                                         signature, sl, args);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.ENTER,
+                      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(level, DebugLogCategory.ENTER,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (activeSettings.noArgs)
+          {
+            args = null;
+          }
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(stackTrace);
+          }
+
+          settings.debugPublisher.traceStaticMethodEntry(level,
+                                                         activeSettings,
+                                                         signature, sl, args,
+                                                         filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log a return from a method call event.
    *
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
-   * @param ret the return value of the method.
+   * @param level The level of the message being logged.
+   * @param ret The value being returned from the method.
    */
-  @AfterReturning(pointcut = "shouldTrace() && " +
-      "(tracedExitMethod() || tracedExitConstructor())",
-                  returning = "ret")
-  public void traceReturn(JoinPoint.StaticPart thisJoinPointStaticPart,
-                          Object ret)
+  public void debugReturn(LogLevel level, Object ret)
   {
-    String signature = thisJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DEFAULT_ENTRY_EXIT_LEVEL.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.EXIT).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceReturn(DEFAULT_ENTRY_EXIT_LEVEL, settings, signature,
-                                 sl, ret);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.ENTER,
+                      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(level, DebugLogCategory.ENTER,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (activeSettings.noRetVal)
+          {
+            ret = null;
+          }
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(stackTrace);
+          }
+
+          settings.debugPublisher.traceReturn(level,
+                                              activeSettings, signature,
+                                              sl, ret,
+                                              filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an exception thrown from a method.
    *
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
-   * @param ex the exception thrown.
+   * @param level The level of the message being logged.
+   * @param ex The exception being thrown.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @AfterThrowing(pointcut = "shouldTrace() && tracedThrownMethod()",
-                 throwing = "ex")
-  public void traceThrown(JoinPoint.StaticPart thisJoinPointStaticPart,
-                          Throwable ex)
+  public void debugThrown(LogLevel level, Throwable ex)
   {
-    String signature = thisJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DEFAULT_THROWN_LEVEL.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.THROWN).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceThrown(DEFAULT_THROWN_LEVEL, settings, signature, sl,
-                              ex);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.THROWN,
+                      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(level, DebugLogCategory.THROWN,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(ex.getStackTrace());
+          }
+
+          settings.debugPublisher.traceThrown(level, activeSettings, signature,
+                                              sl, ex, filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the verbose level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
-   * @param level the level of the log message.
-   * @param ex the exception thrown.
-   */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logThrownMethod() && args(level, ex)")
-  public void traceThrown(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                          JoinPoint.StaticPart
-                              thisJoinPointStaticPart,
-                          LogLevel level, Throwable ex)
-  {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.THROWN).intValue())
-      {
-        logPublisher.traceThrown(level, settings, signature, sl, ex);
-      }
-    }
-  }
-
-  /**
-   * AspectJ Implementation.
-   *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logVerboseMethod() && args(msg)")
-  public void traceVerbose(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           String msg)
+  public void debugVerbose(String msg)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.VERBOSE.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.VERBOSE, settings, signature,
-                                  sl, msg);
-      }
-    }
+    debugMessage(DebugLogLevel.VERBOSE, msg, new Object[]{});
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the verbose level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg, msgArgs...)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    * @param msgArgs arguments to place into the format string.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logVerboseMethod() && args(msg, msgArgs)")
-  public void traceVerbose(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           String msg, Object[] msgArgs)
+  public void debugVerbose(String msg, Object... msgArgs)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    msg = DebugMessageFormatter.format(msg, msgArgs);
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.VERBOSE.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.VERBOSE, settings, signature,
-                                  sl, msg);
-      }
-    }
+    debugMessage(DebugLogLevel.VERBOSE, msg, msgArgs);
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the info level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logInfoMethod() && args(msg)")
-  public void traceInfo(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                        JoinPoint.StaticPart
-                            thisJoinPointStaticPart,
-                        String msg)
+  public void debugInfo(String msg)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.INFO.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.INFO, settings, signature, sl,
-                               msg);
-      }
-    }
+    debugMessage(DebugLogLevel.INFO, msg, new Object[]{});
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the info level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg, msgArgs...)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    * @param msgArgs arguments to place into the format string.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logInfoMethod() && args(msg, msgArgs)")
-  public void traceInfo(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                        JoinPoint.StaticPart
-                            thisJoinPointStaticPart,
-                        String msg, Object[] msgArgs)
+  public void debugInfo(String msg, Object... msgArgs)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    msg = DebugMessageFormatter.format(msg, msgArgs);
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.INFO.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.INFO, settings, signature, sl,
-                               msg);
-      }
-    }
+    debugMessage(DebugLogLevel.INFO, msg, msgArgs);
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the warning level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logWarningMethod() && args(msg)")
-  public void traceWarning(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           String msg)
+  public void debugWarning(String msg)
 
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.WARNING.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.WARNING, settings, signature,
-                                  sl, msg);
-      }
-    }
+    debugMessage(DebugLogLevel.WARNING, msg, new Object[]{});
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the warning level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg, msgArgs...)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    * @param msgArgs arguments to place into the format string.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logWarningMethod() && args(msg, msgArgs)")
-  public void traceWarning(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           String msg, Object[] msgArgs)
+  public void debugWarning(String msg, Object... msgArgs)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    msg = DebugMessageFormatter.format(msg, msgArgs);
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.WARNING.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.WARNING, settings, signature,
-                                  sl, msg);
-      }
-    }
+    debugMessage(DebugLogLevel.WARNING, msg, msgArgs);
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the error level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logErrorMethod() && args(msg)")
-  public void traceError(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                         JoinPoint.StaticPart
-                             thisJoinPointStaticPart,
-                         String msg)
+  public void debugError(String msg)
 
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.ERROR.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.ERROR, settings, signature, sl,
-                               msg);
-      }
-    }
+    debugMessage(DebugLogLevel.ERROR, msg, new Object[]{});
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event at the error level.
+   * Same as debugMessage(DebugLogLevel.ERROR, msg, msgArgs...)
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param msg message to format and log.
    * @param msgArgs arguments to place into the format string.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logErrorMethod() && args(msg, msgArgs)")
-  public void traceError(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                         JoinPoint.StaticPart
-                             thisJoinPointStaticPart,
-                         String msg, Object[] msgArgs)
+  public void debugError(String msg, Object... msgArgs)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    msg = DebugMessageFormatter.format(msg, msgArgs);
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (DebugLogLevel.ERROR.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(DebugLogLevel.ERROR, settings, signature, sl,
-                                  msg);
-      }
-    }
+    debugMessage(DebugLogLevel.ERROR, msg, msgArgs);
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param msg message to format and log.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logMessageMethod() && args(level, msg)")
-  public void traceMessage(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           LogLevel level, String msg)
+  public void debugMessage(LogLevel level, String msg)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
-      {
-        logPublisher.traceMessage(level, settings, signature, sl, msg);
-      }
-    }
+    debugMessage(level, msg, new Object[]{});
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an arbitrary event.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param msg message to format and log.
    * @param msgArgs arguments to place into the format string.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logMessageMethod() && args(level, msg, msgArgs)")
-  public void traceMessage(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                           JoinPoint.StaticPart
-                               thisJoinPointStaticPart,
-                           LogLevel level, String msg, Object... msgArgs)
+  public void debugMessage(LogLevel level, String msg, Object... msgArgs)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    msg = DebugMessageFormatter.format(msg, msgArgs);
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.MESSAGE).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceMessage(level, settings, signature, sl, msg);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, 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(level, DebugLogCategory.MESSAGE,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if(msgArgs != null && msgArgs.length > 0)
+          {
+            msg = String.format(msg, msgArgs);
+          }
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(stackTrace);
+          }
+
+          settings.debugPublisher.traceMessage(level, activeSettings, signature,
+                                               sl, msg, filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log an cought exception.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param ex the exception caught.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logCaughtMethod() && args(level, ex)")
-  public void traceCaught(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                          JoinPoint.StaticPart
-                              thisJoinPointStaticPart,
-                          LogLevel level, Throwable ex)
+  public void debugCaught(LogLevel level, Throwable ex)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.CAUGHT).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceCaught(level, settings, signature, sl, ex);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.CAUGHT,
+                      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(level, DebugLogCategory.CAUGHT,
+                            mSettings))
+              {
+                continue;
+              }
+              else
+              {
+                activeSettings = mSettings;
+              }
+            }
+          }
+
+          String sl = callerFrame.getFileName() + " @ " +
+              callerFrame.getLineNumber();
+
+          if (filteredStackTrace == null && activeSettings.stackDepth > 0)
+          {
+            filteredStackTrace =
+                DebugStackTraceFormatter.SMART_FRAME_FILTER.
+                    getFilteredStackTrace(ex.getStackTrace());
+          }
+
+          settings.debugPublisher.traceCaught(level, activeSettings, signature,
+                                              sl, ex, filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log a JE database access event.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param status status of the JE operation.
    * @param database the database handle.
@@ -866,189 +835,345 @@
    * @param key  the key to dump.
    * @param data the data to dump.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logJEAccessMethod() && args(level, status, " +
-      "database, txn, key, data)")
-  public void traceJEAccess(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                            JoinPoint.StaticPart
-                                thisJoinPointStaticPart,
-                            LogLevel level, OperationStatus status,
+  public void debugJEAccess(LogLevel level, OperationStatus status,
                             Database database, Transaction txn,
                             DatabaseEntry key, DatabaseEntry data)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled())
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings,
-                            DebugLogCategory.DATABASE_ACCESS).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceJEAccess(level, settings, signature, sl, status,
-                                database, txn, key, data);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.DATABASE_ACCESS,
+                      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(level, DebugLogCategory.DATABASE_ACCESS,
+                            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(level, activeSettings,
+                                                signature, sl, status, database,
+                                                txn, key, data,
+                                                filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
+   * Log raw data in the form of a byte array.
+   *
    * @param level the level of the log message.
    * @param data the data to dump.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logDataMethod() && args(level, data)")
-  public void traceData(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                        JoinPoint.StaticPart
-                            thisJoinPointStaticPart,
-                        LogLevel level, byte[] data)
+  public void debugData(LogLevel level, byte[] data)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled() && data != null)
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.DATA).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceData(level, settings, signature, sl, data);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.DATA,
+                      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(level, DebugLogCategory.DATA,
+                            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.traceData(level, activeSettings, signature,
+                                            sl, data, filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log a protocol element.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param element the protocol element to dump.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logProtocolElementMethod() && args(level, element)")
-  public void traceProtocolElement(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                                   JoinPoint.StaticPart
-                                       thisJoinPointStaticPart,
-                                   LogLevel level, ProtocolElement element)
+  public void debugProtocolElement(LogLevel level, ProtocolElement element)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
+    if(DebugLogger.debugEnabled() && element != null)
     {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.PROTOCOL).intValue())
+      StackTraceElement[] stackTrace = null;
+      StackTraceElement[] filteredStackTrace = null;
+      StackTraceElement callerFrame = null;
+      for (PublisherSettings settings : publisherSettings)
       {
-        logPublisher.traceProtocolElement(level, settings, signature, sl,
-                                          element);
+        TraceSettings activeSettings = settings.classSettings;
+        Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+        if (shouldLog(level, DebugLogCategory.PROTOCOL,
+                      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(level, DebugLogCategory.PROTOCOL,
+                            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(level, activeSettings,
+                                                       signature, sl, element,
+                                                       filteredStackTrace);
+        }
       }
     }
   }
 
   /**
-   * AspectJ Implementation.
+   * Log raw data in the form of a ByteBuffer.
    *
-   * @param thisEnclosingJoinPointStaticPart the JoinPoint reflection object
-   *                                         of the code that contains the
-   *                                         debug call.
-   * @param thisJoinPointStaticPart the JoinPoint reflection object.
    * @param level the level of the log message.
    * @param buffer the data to dump.
    */
-  @SuppressAjWarnings({"adviceDidNotMatch"})
-  @Around("shouldTrace() && logDataMethod() && args(level, buffer)")
-  public void traceData(JoinPoint.EnclosingStaticPart
-      thisEnclosingJoinPointStaticPart,
-                        JoinPoint.StaticPart
-                            thisJoinPointStaticPart,
-                        LogLevel level, ByteBuffer buffer)
+  public void debugData(LogLevel level, ByteBuffer buffer)
   {
-    String signature =
-        thisEnclosingJoinPointStaticPart.getSignature().getName();
-    String sl = thisJoinPointStaticPart.getSourceLocation().toString();
-    for(DebugLogPublisher logPublisher : debugPublishers.values())
-    {
-      TraceSettings settings = getSettings(logPublisher, signature);
-      if (level.intValue() >=
-          getEffectiveLevel(settings, DebugLogCategory.DATA).intValue())
-      {
-        logPublisher.traceData(level, settings, signature, sl, buffer.array());
-      }
-    }
+    debugData(level, buffer.array());
   }
 
   /**
-   * Get the current trace settings in effect for the specified method.
+   * Gets the name of the class this tracer traces.
    *
-   * @param debugLogPublisher - the debug publisher to get the trace settings
-   *                            from.
-   * @param method - the method to get trace settings for
-   * @return the current trace settings in effect
+   * @return The name of the class this tracer traces.
    */
-  protected final TraceSettings getSettings(DebugLogPublisher debugLogPublisher,
-                                            String method)
+  public String getTracedClassName()
   {
-    TraceSettings settings = this.classSettings.get(debugLogPublisher);
+    return className;
+  }
 
-    Map<String, TraceSettings> methodSettings =
-        this.methodSettings.get(debugLogPublisher);
-    if (methodSettings != null)
+  /**
+   * Update the cached settings of the tracer with the settings from the
+   * provided publishers.
+   *
+   * @param publishers The array of publishers to obtain the settings from.
+   */
+  @SuppressWarnings("unchecked")
+  void updateSettings(DebugLogPublisher[] publishers)
+  {
+    PublisherSettings[] newSettings =
+        new PublisherSettings[publishers.length];
+
+    // Get the settings from all publishers.
+    for(int i = 0; i < publishers.length; i++)
     {
-      TraceSettings mSettings = methodSettings.get(method);
+      DebugLogPublisher publisher = publishers[i];
+      PublisherSettings settings = new PublisherSettings();
 
-      if (mSettings == null)
+      settings.debugPublisher = publisher;
+      settings.classSettings = publisher.getClassSettings(className);
+
+      // For some reason, the compiler doesn't see that
+      // debugLogPublihser.getMethodSettings returns a parameterized Map.
+      // This problem goes away if a parameterized verson of DebugLogPublisher
+      // is used. However, we can't not use reflection to instantiate a generic
+      // DebugLogPublisher<? extends DebugLogPublisherCfg> type. The only thing
+      // we can do is to just supress the compiler warnings.
+      settings.methodSettings = publisher.getMethodSettings(className);
+
+      newSettings[i] = settings;
+    }
+
+    publisherSettings = newSettings;
+  }
+
+  /**
+   * Return the caller stack frame.
+   *
+   * @param stackTrace The entrie stack trace frames.
+   * @return the caller stack frame or null if none is found on the
+   * stack trace.
+   */
+  private StackTraceElement getCallerFrame(StackTraceElement[] stackTrace)
+  {
+    if (stackTrace != null && stackTrace.length > 0)
+    {
+      // Skip leading frames debug logging classes and getStackTrace
+      // method call frame if any.
+      for (int i = 0; i < stackTrace.length; i++)
       {
-        // Try looking for an undecorated method name
-        int idx = method.indexOf('(');
-        if (idx != -1)
+        StackTraceElement aStackTrace = stackTrace[i];
+        if(i == 0 && aStackTrace.getClassName().equals("java.lang.Thread"))
         {
-          mSettings =
-              methodSettings.get(method.substring(0, idx));
+          continue;
+        }
+
+        if (!aStackTrace.getClassName().startsWith(
+            "org.opends.server.loggers.debug"))
+        {
+          return aStackTrace;
         }
       }
-
-      if (mSettings != null) settings = mSettings;
     }
 
-    return settings;
+    return null;
   }
 
-  /**
-   * Retrieve the current log level given the trace settings and log category.
-   *
-   * @param settings the trace settings to test from.
-   * @param category the log category to test.
-   * @return the effective log level.
-   */
-  protected final LogLevel getEffectiveLevel(TraceSettings settings,
-                                             LogCategory category)
+  private boolean shouldLog(LogLevel messageLevel, LogCategory messageCategory,
+                            TraceSettings activeSettings)
   {
-    if (settings == null)
-    {
-      return DebugLogLevel.DISABLED;
-    }
+    return !(activeSettings.includeCategories != null &&
+        !activeSettings.includeCategories.contains(messageCategory)) &&
+        messageLevel.intValue() >= activeSettings.level.intValue();
 
-    LogLevel level = settings.level;
-    Set<LogCategory> includedCategories = settings.includeCategories;
-
-    if(includedCategories != null &&
-        !includedCategories.contains(category))
-    {
-      level = DebugLogLevel.DISABLED;
-    }
-
-    return level;
   }
 }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
index 83140e9..f0b6f46 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
@@ -91,9 +91,6 @@
     TextDebugLogPublisher startupPublisher = new TextDebugLogPublisher();
     startupPublisher.writer = writer;
 
-    startupPublisher.addTraceSettings(null,
-                                      new TraceSettings(DebugLogLevel.ERROR));
-
     Set<Map.Entry<Object, Object>> propertyEntries =
         System.getProperties().entrySet();
     for(Map.Entry<Object, Object> entry : propertyEntries)
@@ -349,7 +346,7 @@
 
     addTraceSettings(null, defaultSettings);
 
-    DebugLogger.addTracerSettings(this);
+    DebugLogger.updateTracerSettings();
 
     File logFile = getFileForPath(config.getLogFile());
     FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
@@ -495,7 +492,7 @@
 
     addTraceSettings(config.getDebugScope(), new TraceSettings(config));
 
-    DebugLogger.addTracerSettings(this);
+    DebugLogger.updateTracerSettings();
 
     return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   }
@@ -512,7 +509,7 @@
 
     removeTraceSettings(config.getDebugScope());
 
-    DebugLogger.addTracerSettings(this);
+    DebugLogger.updateTracerSettings();
 
     return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   }
@@ -524,41 +521,49 @@
                                TraceSettings settings,
                                String signature,
                                String sourceLocation,
-                               Object[] args)
+                               Object[] args,
+                               StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.CONSTRUCTOR;
+
     String msg = "";
-    if(!settings.noArgs)
+    if(args != null)
     {
       msg = buildDefaultEntryMessage(args);
     }
-    publish(category, level, signature, sourceLocation, msg, null);
+
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
+    }
+    publish(category, level, signature, sourceLocation, msg, stack);
   }
 
   /**
    * {@inheritDoc}
    */
-  public void traceNonStaticMethodEntry(LogLevel level,
-                                        TraceSettings settings,
-                                        String signature,
-                                        String sourceLocation,
-                                        Object obj,
-                                        Object[] args)
+  public void traceMethodEntry(LogLevel level,
+                               TraceSettings settings,
+                               String signature,
+                               String sourceLocation,
+                               Object obj,
+                               Object[] args,
+                               StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.ENTER;
     String msg = "";
-    if(!settings.noArgs)
+    if(args != null)
     {
       msg = buildDefaultEntryMessage(args);
     }
-    String stack = null;
-    int stackDepth = settings.stackDepth;
 
-    // Inject a stack trace if requested
-    if (stackDepth > 0) {
-      stack = DebugStackTraceFormatter.formatStackTrace(
-                                    DebugStackTraceFormatter.SMART_FRAME_FILTER,
-                                    stackDepth);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
     }
     publish(category, level, signature, sourceLocation, msg, stack);
   }
@@ -570,23 +575,21 @@
                                      TraceSettings settings,
                                      String signature,
                                      String sourceLocation,
-                                     Object[] args)
+                                     Object[] args,
+                                     StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.ENTER;
     String msg = "";
-    if(!settings.noArgs)
+    if(args != null)
     {
       msg = buildDefaultEntryMessage(args);
     }
-    String stack = null;
-    int stackDepth = settings.stackDepth;
 
-    // Inject a stack trace if requested
-    if (stackDepth > 0) {
-      stack=
-          DebugStackTraceFormatter.formatStackTrace(
-                                    DebugStackTraceFormatter.SMART_FRAME_FILTER,
-                                    stackDepth);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
     }
     publish(category, level, signature, sourceLocation, msg, stack);
   }
@@ -598,16 +601,24 @@
                           TraceSettings settings,
                           String signature,
                           String sourceLocation,
-                          Object ret)
+                          Object ret,
+                          StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.EXIT;
     String msg = "";
-    if(!settings.noRetVal)
+    if(ret != null)
     {
       msg = DebugMessageFormatter.format("returned={%s}",
                                          new Object[] {ret});
     }
-    publish(category, level, signature, sourceLocation, msg, null);
+
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
+    }
+    publish(category, level, signature, sourceLocation, msg, stack);
   }
 
   /**
@@ -617,21 +628,20 @@
                           TraceSettings settings,
                           String signature,
                           String sourceLocation,
-                          Throwable ex)
+                          Throwable ex,
+                          StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.THROWN;
-    String stack = null;
-    int stackDepth = settings.stackDepth;
 
     String msg = DebugMessageFormatter.format("thrown={%s}",
                                               new Object[] {ex});
 
-    // Inject a stack trace if requested
-    if (stackDepth > 0) {
-      stack=
-          DebugStackTraceFormatter.formatStackTrace(ex,
-                                    DebugStackTraceFormatter.SMART_FRAME_FILTER,
-                                    stackDepth, settings.includeCause);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(ex,
+                                                        settings.stackDepth,
+                                                        settings.includeCause);
     }
     publish(category, level, signature, sourceLocation, msg, stack);
   }
@@ -643,10 +653,18 @@
                            TraceSettings settings,
                            String signature,
                            String sourceLocation,
-                           String msg)
+                           String msg,
+                           StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.MESSAGE;
-    publish(category, level, signature, sourceLocation, msg, null);
+
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
+    }
+    publish(category, level, signature, sourceLocation, msg, stack);
   }
 
   /**
@@ -655,13 +673,22 @@
   public void traceCaught(LogLevel level,
                           TraceSettings settings,
                           String signature,
-                          String sourceLocation, Throwable ex)
+                          String sourceLocation,
+                          Throwable ex,
+                          StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.CAUGHT;
     String msg = DebugMessageFormatter.format("caught={%s}",
                                               new Object[] {ex});
 
-    publish(category, level, signature, sourceLocation, msg, null);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(ex,
+                                                        settings.stackDepth,
+                                                        settings.includeCause);
+    }
+    publish(category, level, signature, sourceLocation, msg, stack);
   }
 
   /**
@@ -673,7 +700,8 @@
                             String sourceLocation,
                             OperationStatus status,
                             Database database, Transaction txn,
-                            DatabaseEntry key, DatabaseEntry data)
+                            DatabaseEntry key, DatabaseEntry data,
+                            StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.DATABASE_ACCESS;
 
@@ -729,8 +757,14 @@
 
     }
 
-    publish(category, level, signature, sourceLocation, builder.toString(),
-            null);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
+    }
+    publish(category, level, signature, sourceLocation,
+            builder.toString(), stack);
   }
 
   /**
@@ -740,7 +774,8 @@
                         TraceSettings settings,
                         String signature,
                         String sourceLocation,
-                        byte[] data)
+                        byte[] data,
+                        StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.DATA;
     if(data != null)
@@ -753,8 +788,14 @@
       builder.append(ServerConstants.EOL);
       StaticUtils.byteArrayToHexPlusAscii(builder, data, 4);
 
-      publish(category, level, signature, sourceLocation, builder.toString(),
-              null);
+    String stack = null;
+    if(stackTrace != null)
+    {
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
+    }
+    publish(category, level, signature, sourceLocation,
+            builder.toString(), stack);
     }
   }
 
@@ -765,17 +806,23 @@
                                    TraceSettings settings,
                                    String signature,
                                    String sourceLocation,
-                                   ProtocolElement element)
+                                   ProtocolElement element,
+                                   StackTraceElement[] stackTrace)
   {
     LogCategory category = DebugLogCategory.PROTOCOL;
-    if(element != null)
+
+    StringBuilder builder = new StringBuilder();
+    builder.append(ServerConstants.EOL);
+    element.toString(builder, 4);
+
+    String stack = null;
+    if(stackTrace != null)
     {
-      StringBuilder builder = new StringBuilder();
-      builder.append(ServerConstants.EOL);
-      element.toString(builder, 4);
-      publish(category, level, signature, sourceLocation, builder.toString(),
-              null);
+      stack = DebugStackTraceFormatter.formatStackTrace(stackTrace,
+                                                        settings.stackDepth);
     }
+    publish(category, level, signature, sourceLocation,
+            builder.toString(), stack);
   }
 
   /**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java b/opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
index b1c795f..8f2aad5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.monitors;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import org.opends.server.api.AttributeSyntax;
@@ -60,6 +60,11 @@
  */
 public class DatabaseEnvironmentMonitor extends MonitorProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -198,7 +203,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -230,7 +235,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       return null;
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java b/opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
index 6f16320..4f61980 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -56,6 +56,11 @@
 public class SystemInfoMonitorProvider
        extends MonitorProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -178,7 +183,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -224,7 +229,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       values.add(new AttributeValue(encodedValue, encodedValue));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java b/opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java
index 3bca34a..36ac6cc 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.util.DynamicConstants;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -56,6 +56,11 @@
        extends MonitorProvider
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The name of the attribute used to provide the product name.
    */
   public static final String ATTR_PRODUCT_NAME = "productName";
@@ -298,7 +303,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       values.add(new AttributeValue(encodedValue, encodedValue));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java
index 15626f9..2e113ab 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java
@@ -40,9 +40,8 @@
 import org.opends.server.types.ObjectClass;
 import org.opends.server.types.operation.PreParseSearchOperation;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugWarning;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.PluginMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -60,6 +59,11 @@
        extends DirectoryServerPlugin<PluginCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new instance of this Directory Server plugin.  Every plugin must
    * implement a default constructor (it is the only one that will be used to
    * create plugins defined in the configuration), and every plugin constructor
@@ -144,14 +148,15 @@
           {
             if (debugEnabled())
             {
-              debugWarning("Cannot replace unknown objectclass %s", lowerName);
+              TRACER.debugWarning("Cannot replace unknown objectclass %s",
+                                  lowerName);
             }
           }
           else
           {
             if (debugEnabled())
             {
-              debugInfo("Replacing objectclass %s", lowerName);
+              TRACER.debugInfo("Replacing objectclass %s", lowerName);
             }
 
             for (AttributeType at : oc.getRequiredAttributeChain())
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java
index 15dff1d..7cf0213 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java
@@ -51,14 +51,12 @@
 import org.opends.server.types.operation.PreOperationModifyDNOperation;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.PluginMessages.*;
 import static org.opends.server.util.TimeThread.*;
-
-
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 /**
  * This class implements a Directory Server plugin that will add the
@@ -69,6 +67,11 @@
 public final class LastModPlugin
        extends DirectoryServerPlugin<PluginCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for the "createTimestamp" attribute.
   private final AttributeType createTimestampType;
 
@@ -223,7 +226,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // This should never happen.
@@ -250,7 +253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // This should never happen.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
index 8878a9c..3925a4b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
@@ -55,10 +55,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.LDIFImportConfig;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.PluginMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -73,6 +73,11 @@
 public final class PasswordPolicyImportPlugin
        extends DirectoryServerPlugin<PluginCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The sets of password storage schemes for the auth password attributes.
   private final HashMap<AttributeType,PasswordStorageScheme[]>
                      authPasswordSchemes;
@@ -243,7 +248,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int    msgID   = MSGID_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD;
@@ -304,7 +309,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int    msgID   = MSGID_PLUGIN_PWPIMPORT_ERROR_ENCODING_PASSWORD;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java
index 8d12b1c..25fab13 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java
@@ -33,8 +33,8 @@
 import org.opends.server.protocols.asn1.ASN1OctetString;
 import org.opends.server.protocols.asn1.ASN1Sequence;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -44,6 +44,11 @@
  */
 public class ProfileStack
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -291,7 +296,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -357,7 +362,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
index 64385e9..210e88c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
@@ -31,8 +31,8 @@
 import java.util.Arrays;
 import java.util.HashMap;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -46,6 +46,11 @@
 public class ProfileStackFrame
        implements Comparable
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -324,7 +329,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
index 03eeb35..bd54584 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
@@ -47,10 +47,10 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.util.TimeThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.PluginMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -71,6 +71,11 @@
        implements ConfigurationChangeListener<ProfilerPluginCfg>
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The value to use for the profiler action when no action is necessary.
    */
   public static final String PROFILE_ACTION_NONE = "none";
@@ -201,7 +206,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA;
@@ -338,7 +343,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               msgID = MSGID_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
index e256b16..14f8c6d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
@@ -40,8 +40,8 @@
 import org.opends.server.protocols.asn1.ASN1Sequence;
 import org.opends.server.protocols.asn1.ASN1Writer;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -55,6 +55,11 @@
 public class ProfilerThread
        extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -175,7 +180,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -207,7 +212,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java
index 0dd4616..98e0572 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java
@@ -31,8 +31,8 @@
 import org.opends.server.types.ByteString;
 import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
@@ -57,6 +57,11 @@
        extends ASN1Element
        implements ByteString
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -207,7 +212,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         stringValue = new String(value());
@@ -254,7 +259,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           s = new String(value, i, (length - i));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java
index 66a61bc..23d94c7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java
@@ -32,8 +32,8 @@
 import java.io.IOException;
 import java.net.Socket;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
@@ -46,6 +46,11 @@
  */
 public class ASN1Reader
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -290,7 +295,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -304,7 +309,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java
index 8999ebe..a13f7cd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java
@@ -32,8 +32,8 @@
 import java.io.OutputStream;
 import java.net.Socket;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -43,6 +43,11 @@
  */
 public class ASN1Writer
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -122,7 +127,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -137,7 +142,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
index d719611..68f1295 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
@@ -85,12 +85,10 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -105,6 +103,11 @@
        extends ClientConnection
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The protocol verison string that will be used for internal bind
    * operations.  Since this is modeled after LDAPv3 binds, it will
    * use a version number string of "3".
@@ -224,7 +227,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       logError(ErrorLogCategory.CONNECTION_HANDLING,
@@ -245,7 +248,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -282,7 +285,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
index 417adef..26c5c12 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
@@ -26,9 +26,8 @@
  */
 package org.opends.server.protocols.jmx;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import java.io.IOException;
@@ -57,6 +56,11 @@
 public class DirectoryRMIClientSocketFactory implements
     RMIClientSocketFactory, Serializable
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -290,7 +294,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose("sslSocketFactory is null, get a new one");
+        TRACER.debugVerbose("sslSocketFactory is null, get a new one");
       }
 
       // socket factory not yet initialized
@@ -315,7 +319,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           tms = null;
         }
@@ -345,7 +349,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         throw new IOException("Unable to initialize SSL context : "
             + e.getMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
index a381cfb..0b6f669 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.protocols.jmx;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -51,6 +51,11 @@
     RMIServerSocketFactory
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    *  The SSL socket factory associated with the connector.
    */
   private SSLSocketFactory sslSocketFactory = null;
@@ -120,7 +125,7 @@
         Socket socket = super.accept();
         if (debugEnabled())
         {
-          debugVerbose("host/port: %s/%d",
+          TRACER.debugVerbose("host/port: %s/%d",
                        socket.getInetAddress().getHostName(), socket.getPort());
         }
         SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket(
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
index 98672a1..bd282b3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
@@ -61,6 +61,7 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.ProtocolMessages.*;
 
 
@@ -72,6 +73,11 @@
 public class JmxClientConnection
        extends ClientConnection implements NotificationListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The message ID counter to use for jmx connections.
   private AtomicInteger nextMessageID;
 
@@ -147,7 +153,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -827,7 +833,7 @@
       // TODO print a message ?
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -843,7 +849,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
index 3cf323b..70e6069 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
@@ -44,9 +44,8 @@
 import org.opends.server.types.AuthenticationInfo;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 /**
@@ -57,6 +56,11 @@
  */
 public class RmiAuthenticator implements JMXAuthenticator
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
     /**
      * The client authencation mode. <code>true</code> indicates that the
@@ -141,7 +145,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose("User name is Null");
+        TRACER.debugVerbose("User name is Null");
       }
       SecurityException se = new SecurityException();
       throw se;
@@ -150,7 +154,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose("User password is Null ");
+        TRACER.debugVerbose("User password is Null ");
       }
 
       SecurityException se = new SecurityException();
@@ -159,7 +163,7 @@
 
     if (debugEnabled())
     {
-      debugVerbose("UserName = %s", authcID);
+      TRACER.debugVerbose("UserName = %s", authcID);
     }
 
     //
@@ -177,7 +181,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       SecurityException se = new SecurityException();
       se.initCause(e);
@@ -268,7 +272,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose("User is authenticated");
+        TRACER.debugVerbose("User is authenticated");
       }
 
       authInfo = bindOp.getAuthenticationInfo();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
index 0c1a3d4..8ec6a25 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
@@ -47,11 +47,8 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.NullKeyManagerProvider;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugWarning;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import org.opends.server.util.SelectableCertificateKeyManager;
@@ -73,6 +70,11 @@
  */
 public class RmiConnector
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * The MBean server used to handle JMX interaction.
@@ -190,7 +192,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       throw new RuntimeException("Error while starting the RMI module : "
@@ -199,7 +201,7 @@
 
     if (debugEnabled())
     {
-      debugVerbose("RMI module started");
+      TRACER.debugVerbose("RMI module started");
     }
   }
 
@@ -219,7 +221,8 @@
     // create our local RMI registry if it does not exist already
     if (debugEnabled())
     {
-      debugVerbose("start or reach an RMI registry on port %d", registryPort);
+      TRACER.debugVerbose("start or reach an RMI registry on port %d",
+                          registryPort);
     }
     try
     {
@@ -237,7 +240,7 @@
       // is the registry already created ?
       if (debugEnabled())
       {
-        debugWarning("cannot create the RMI registry -> already done ?");
+        TRACER.debugWarning("cannot create the RMI registry -> already done ?");
       }
       try
       {
@@ -256,11 +259,11 @@
         {
           //
           // no 'valid' registry found on the specified port
-          debugError("exception thrown while pinging the RMI registry");
+          TRACER.debugError("exception thrown while pinging the RMI registry");
 
           //
           // throw the original exception
-          debugCaught(DebugLogLevel.ERROR, re);
+          TRACER.debugCaught(DebugLogLevel.ERROR, re);
         }
         throw re;
       }
@@ -270,7 +273,7 @@
       // it was not created by this call
       if (debugEnabled())
       {
-        debugWarning("RMI was registry already started");
+        TRACER.debugWarning("RMI was registry already started");
       }
     }
   }
@@ -304,7 +307,7 @@
       {
         if (debugEnabled())
         {
-          debugVerbose("SSL connection");
+          TRACER.debugVerbose("SSL connection");
         }
 
         // ---------------------
@@ -363,7 +366,7 @@
       {
         if (debugEnabled())
         {
-          debugVerbose("UNSECURE CONNECTION");
+          TRACER.debugVerbose("UNSECURE CONNECTION");
         }
       }
 
@@ -371,7 +374,7 @@
       // specify the rmi JMX authenticator to be used
       if (debugEnabled())
       {
-        debugVerbose("Add RmiAuthenticator into JMX map");
+        TRACER.debugVerbose("Add RmiAuthenticator into JMX map");
       }
       rmiAuthenticator = new RmiAuthenticator(jmxConnectionHandler);
 
@@ -389,7 +392,7 @@
       // Create and start the connector
       if (debugEnabled())
       {
-        debugVerbose("Create and start the JMX RMI connector");
+        TRACER.debugVerbose("Create and start the JMX RMI connector");
       }
       OpendsRMIJRMPServerImpl opendsRmiConnectorServer =
           new OpendsRMIJRMPServerImpl(
@@ -407,7 +410,7 @@
 
       if (debugEnabled())
       {
-        debugVerbose("JMX RMI connector Started");
+        TRACER.debugVerbose("JMX RMI connector Started");
       }
 
     }
@@ -415,7 +418,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       throw e;
     }
@@ -487,7 +490,7 @@
       // TODO Log an error message
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -504,7 +507,7 @@
         // TODO Log an error message
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
       registry = null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
index 5780be4..f501536 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
@@ -33,8 +33,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -51,6 +51,11 @@
 public class AbandonRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The message ID of the operation to abandon.
   private int idToAbandon;
 
@@ -153,7 +158,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ABANDON_REQUEST_DECODE_ID;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
index 3a70861..55da3a4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
@@ -42,6 +42,7 @@
 
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -58,6 +59,11 @@
 public class AddRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of attributes for this add request.
   private List<RawAttribute> attributes;
 
@@ -213,7 +219,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ADD_REQUEST_DECODE_SEQUENCE;
@@ -240,7 +246,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ADD_REQUEST_DECODE_DN;
@@ -265,7 +271,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ADD_REQUEST_DECODE_ATTRS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
index ce0a988..e97eb02 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class AddResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The matched DN for this response.
   private DN matchedDN;
 
@@ -309,7 +315,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -336,7 +342,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -362,7 +368,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -384,7 +390,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -415,7 +421,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
index f8bd506..894150d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
@@ -38,8 +38,8 @@
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.LDAPException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -55,6 +55,11 @@
 public class BindRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The bind DN for this request.
   private ASN1OctetString dn;
 
@@ -362,7 +367,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_BIND_REQUEST_DECODE_SEQUENCE;
@@ -389,7 +394,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_BIND_REQUEST_DECODE_VERSION;
@@ -407,7 +412,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_BIND_REQUEST_DECODE_DN;
@@ -475,7 +480,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_BIND_REQUEST_DECODE_CREDENTIALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
index 72749a9..0219b95 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class BindResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The server SASL credentials for this response.
   private ASN1OctetString serverSASLCredentials;
 
@@ -371,7 +377,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -398,7 +404,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -424,7 +430,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -446,7 +452,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -481,7 +487,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
@@ -501,7 +507,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int msgID = MSGID_LDAP_BIND_RESULT_DECODE_SERVER_SASL_CREDENTIALS;
@@ -532,7 +538,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
@@ -548,7 +554,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_LDAP_BIND_RESULT_DECODE_SERVER_SASL_CREDENTIALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
index b309163..b6fad85 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
@@ -37,6 +37,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -52,6 +53,11 @@
 public class CompareRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The assertion value for this compare request.
   private ASN1OctetString assertionValue;
 
@@ -220,7 +226,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_COMPARE_REQUEST_DECODE_SEQUENCE;
@@ -247,7 +253,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_COMPARE_REQUEST_DECODE_DN;
@@ -265,7 +271,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_COMPARE_REQUEST_DECODE_AVA;
@@ -292,7 +298,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_COMPARE_REQUEST_DECODE_TYPE;
@@ -310,7 +316,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_COMPARE_REQUEST_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
index 406ee71..fa62c55 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class CompareResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The matched DN for this response.
   private DN matchedDN;
 
@@ -310,7 +316,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -337,7 +343,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -363,7 +369,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -385,7 +391,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -416,7 +422,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
index f29db79..32596d7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
@@ -34,6 +34,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -48,6 +49,11 @@
 public class DeleteRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The DN for this delete request.
   private ASN1OctetString dn;
 
@@ -148,7 +154,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_DELETE_REQUEST_DECODE_DN;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
index 32e48b8..183292f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class DeleteResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -313,7 +319,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -340,7 +346,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -366,7 +372,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -388,7 +394,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -419,7 +425,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
index c5dcc14..53ab3a2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
@@ -37,6 +37,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -52,6 +53,11 @@
 public class ExtendedRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The value for this extended request.
   private ASN1OctetString value;
 
@@ -208,7 +214,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_EXTENDED_REQUEST_DECODE_SEQUENCE;
@@ -235,7 +241,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_EXTENDED_REQUEST_DECODE_OID;
@@ -255,7 +261,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_EXTENDED_REQUEST_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
index a3f81d3..7130468 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class ExtendedResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The value for this extended response.
   private ASN1OctetString value;
 
@@ -408,7 +414,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -435,7 +441,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -461,7 +467,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -483,7 +489,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -516,7 +522,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int msgID = MSGID_LDAP_EXTENDED_RESULT_DECODE_REFERRALS;
@@ -534,7 +540,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int msgID = MSGID_LDAP_EXTENDED_RESULT_DECODE_OID;
@@ -552,7 +558,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int msgID = MSGID_LDAP_EXTENDED_RESULT_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
index 52e041e..5480929 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
@@ -38,6 +38,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -55,6 +56,11 @@
 public class IntermediateResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The value for this intermediate response.
   private ASN1OctetString value;
 
@@ -217,7 +223,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_INTERMEDIATE_RESPONSE_DECODE_SEQUENCE;
@@ -253,7 +259,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, ae);
+              TRACER.debugCaught(DebugLogLevel.ERROR, ae);
             }
 
             int msgID = MSGID_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_OID;
@@ -270,7 +276,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, ae);
+              TRACER.debugCaught(DebugLogLevel.ERROR, ae);
             }
 
             int msgID = MSGID_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_VALUE;
@@ -294,7 +300,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
 
         int msgID = MSGID_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_OID;
@@ -310,7 +316,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
 
         int msgID = MSGID_LDAP_INTERMEDIATE_RESPONSE_CANNOT_DECODE_OID;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java
index 1b12fc0..087ab23 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java
@@ -42,6 +42,7 @@
 import org.opends.server.types.RawAttribute;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -59,6 +60,11 @@
 public class LDAPAttribute
        extends RawAttribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of values for this attribute.
   private ArrayList<ASN1OctetString> values;
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index a52837d..2a1ba16 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -76,12 +76,10 @@
 import org.opends.server.types.SearchResultReference;
 
 import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugData;
-import static org.opends.server.loggers.debug.DebugLogger.debugProtocolElement;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -98,6 +96,11 @@
        extends ClientConnection
        implements TLSCapableConnection
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -865,13 +868,13 @@
           return;
         }
 
-        debugProtocolElement(DebugLogLevel.VERBOSE, message);
-        debugProtocolElement(DebugLogLevel.VERBOSE, messageElement);
+        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, message);
+        TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, messageElement);
 
         messageBuffer.rewind();
         if (debugEnabled())
         {
-          debugData(DebugLogLevel.VERBOSE, messageBuffer);
+          TRACER.debugData(DebugLogLevel.VERBOSE, messageBuffer);
         }
 
         if (keepStats)
@@ -883,7 +886,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We were unable to send the message due to some other internal
@@ -897,7 +900,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // FIXME -- Log a message or something
@@ -968,7 +971,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -1057,7 +1060,7 @@
       // here.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -1071,7 +1074,7 @@
       // here.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -1101,7 +1104,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
@@ -1192,7 +1195,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       operationsInProgress.remove(messageID);
@@ -1203,7 +1206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_CLIENT_CANNOT_ENQUEUE;
@@ -1314,7 +1317,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -1331,7 +1334,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -1381,7 +1384,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
         }
@@ -1399,7 +1402,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -1437,7 +1440,7 @@
   {
     if (debugEnabled())
     {
-      debugData(DebugLogLevel.VERBOSE, buffer);
+      TRACER.debugData(DebugLogLevel.VERBOSE, buffer);
     }
 
 
@@ -1629,13 +1632,14 @@
             {
               requestSequence = ASN1Sequence.decodeAsSequence(elementType,
                                                               elementValue);
-              debugProtocolElement(DebugLogLevel.VERBOSE, requestSequence);
+              TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+                                          requestSequence);
             }
             catch (Exception e)
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               disconnect(DisconnectReason.PROTOCOL_ERROR, true,
@@ -1648,13 +1652,14 @@
             try
             {
               requestMessage = LDAPMessage.decode(requestSequence);
-              debugProtocolElement(DebugLogLevel.VERBOSE, requestMessage);
+              TRACER.debugProtocolElement(DebugLogLevel.VERBOSE,
+                                          requestMessage);
             }
             catch (Exception e)
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               disconnect(DisconnectReason.PROTOCOL_ERROR, true,
@@ -1786,7 +1791,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_DISCONNECT_DUE_TO_PROCESSING_FAILURE;
@@ -1862,7 +1867,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       AddResponseProtocolOp responseOp =
@@ -1965,7 +1970,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       BindResponseProtocolOp responseOp =
@@ -2024,7 +2029,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       CompareResponseProtocolOp responseOp =
@@ -2074,7 +2079,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       DeleteResponseProtocolOp responseOp =
@@ -2144,7 +2149,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       ExtendedResponseProtocolOp responseOp =
@@ -2194,7 +2199,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       ModifyResponseProtocolOp responseOp =
@@ -2246,7 +2251,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       ModifyDNResponseProtocolOp responseOp =
@@ -2301,7 +2306,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       SearchResultDoneProtocolOp responseOp =
@@ -2473,7 +2478,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         tlsSecurityProvider = null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
index d3f7052..979bc32 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
@@ -30,8 +30,8 @@
 
 import static org.opends.server.loggers.AccessLogger.logConnect;
 import static org.opends.server.loggers.ErrorLogger.logError;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -97,6 +97,11 @@
     ServerShutdownListener, AlertGenerator {
 
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -315,7 +320,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -622,7 +627,7 @@
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_CONNHANDLER_OPEN_SELECTOR_FAILED;
@@ -882,7 +887,7 @@
           } catch (Exception e) {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             logError(ErrorLogCategory.CONNECTION_HANDLING,
@@ -978,7 +983,7 @@
                   {
                     if (debugEnabled())
                     {
-                      debugCaught(DebugLogLevel.ERROR, e);
+                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
                     }
 
                     clientConnection.disconnect(
@@ -1029,7 +1034,7 @@
                   } catch (Exception e) {
                     if (debugEnabled())
                     {
-                      debugCaught(DebugLogLevel.ERROR, e);
+                      TRACER.debugCaught(DebugLogLevel.ERROR, e);
                     }
 
                     int msgID =
@@ -1066,7 +1071,7 @@
           } catch (Exception e) {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             logError(ErrorLogCategory.CONNECTION_HANDLING,
@@ -1107,7 +1112,7 @@
       } catch (Exception e) {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This is very bad because we failed outside the loop. The
@@ -1181,7 +1186,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -1190,14 +1195,14 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
     } catch (Exception e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java
index 762dc3b..da1edd4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java
@@ -39,6 +39,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.asn1.ASN1Constants.*;
@@ -54,6 +55,11 @@
  */
 public class LDAPControl
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The control wrapped by this LDAP control.
   private Control control;
 
@@ -203,7 +209,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_CONTROL_DECODE_SEQUENCE;
@@ -230,7 +236,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_CONTROL_DECODE_OID;
@@ -262,7 +268,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e2);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
             }
 
             int msgID = MSGID_LDAP_CONTROL_DECODE_CRITICALITY;
@@ -281,7 +287,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e2);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
             }
 
             int msgID = MSGID_LDAP_CONTROL_DECODE_VALUE;
@@ -308,7 +314,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_CONTROL_DECODE_CRITICALITY;
@@ -325,7 +331,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_CONTROL_DECODE_VALUE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
index dc72613..4b8ba36 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
@@ -51,6 +51,7 @@
 import org.opends.server.types.SearchFilter;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -67,6 +68,11 @@
 public class LDAPFilter
        extends RawFilter
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of subAny elements for substring filters.
   private ArrayList<ByteString> subAnyElements;
 
@@ -312,7 +318,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
       throw le;
@@ -321,7 +327,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_UNCAUGHT_EXCEPTION;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java
index 71c517a..9bcc85b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java
@@ -39,6 +39,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -53,6 +54,11 @@
 public class LDAPMessage
        implements ProtocolElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of controls for this LDAP message.
   private ArrayList<LDAPControl> controls;
 
@@ -612,7 +618,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MESSAGE_DECODE_MESSAGE_ID;
@@ -630,7 +636,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MESSAGE_DECODE_PROTOCOL_OP;
@@ -650,7 +656,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_MESSAGE_DECODE_CONTROLS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
index 2311dd1..32b6994 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
@@ -44,10 +44,10 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import org.opends.server.types.DisconnectReason;
@@ -68,6 +68,11 @@
        extends DirectoryThread
        implements ServerShutdownListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -130,7 +135,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_REQHANDLER_OPEN_SELECTOR_FAILED;
@@ -185,7 +190,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // FIXME -- Should we do something else with this?
@@ -221,7 +226,7 @@
                 {
                   if (debugEnabled())
                   {
-                    debugCaught(DebugLogLevel.ERROR, e);
+                    TRACER.debugCaught(DebugLogLevel.ERROR, e);
                   }
 
                   // Some other error occurred while we were trying to read data
@@ -236,7 +241,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, e);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, e);
                 }
 
                 // We got some other kind of error.  If nothing else, cancel the
@@ -260,7 +265,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, cke);
+              TRACER.debugCaught(DebugLogLevel.ERROR, cke);
             }
 
             // This could happen if a connection was closed between the time
@@ -272,7 +277,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should not happen, and it would have caused our reader
@@ -307,7 +312,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           c.disconnect(DisconnectReason.SERVER_ERROR, true,
@@ -386,7 +391,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -398,7 +403,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -423,7 +428,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
 
@@ -435,7 +440,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -519,7 +524,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -536,7 +541,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java
index 31610b4..1d461bd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.AttributeValue;
 import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -75,6 +75,11 @@
 public class LDAPStatistics
        extends MonitorProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -364,7 +369,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               return attrs;
@@ -378,7 +383,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return attrs;
@@ -392,7 +397,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           return attrs;
@@ -406,7 +411,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         return attrs;
@@ -420,7 +425,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return attrs;
@@ -553,7 +558,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
             }
             finally
@@ -565,7 +570,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
           finally
@@ -577,7 +582,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
         finally
@@ -589,7 +594,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
       finally
@@ -601,7 +606,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -628,7 +633,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -661,7 +666,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -696,7 +701,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -766,7 +771,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -851,7 +856,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -884,7 +889,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
     finally
@@ -926,7 +931,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       values.add(new AttributeValue(encodedValue, encodedValue));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
index 6afd06c..a53f248 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
@@ -38,6 +38,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -53,6 +54,11 @@
 public class ModifyDNRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The current entry DN for this modify DN request.
   private ASN1OctetString entryDN;
 
@@ -276,7 +282,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_DN_REQUEST_DECODE_SEQUENCE;
@@ -303,7 +309,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_DN_REQUEST_DECODE_DN;
@@ -321,7 +327,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_RDN;
@@ -339,7 +345,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_DN_REQUEST_DECODE_DELETE_OLD_RDN;
@@ -359,7 +365,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_MODIFY_DN_REQUEST_DECODE_NEW_SUPERIOR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
index 6f5774b..0649e5a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class ModifyDNResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The matched DN for this response.
   private DN matchedDN;
 
@@ -310,7 +316,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -337,7 +343,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -363,7 +369,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -385,7 +391,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -416,7 +422,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
index 82bf3c7..d1d4fe1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
@@ -39,6 +39,7 @@
 import org.opends.server.types.RawModification;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -54,6 +55,11 @@
 public class ModifyRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of modifications for this modify request.
   private ArrayList<RawModification> modifications;
 
@@ -210,7 +216,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_REQUEST_DECODE_SEQUENCE;
@@ -237,7 +243,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_REQUEST_DECODE_DN;
@@ -262,7 +268,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFY_REQUEST_DECODE_MODS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
index 2482fe1..3cece07 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class ModifyResponseProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The matched DN for this response.
   private DN matchedDN;
 
@@ -310,7 +316,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -337,7 +343,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -363,7 +369,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -385,7 +391,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -416,7 +422,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
index 2b16096..65d9493 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
@@ -44,6 +44,7 @@
 import org.opends.server.types.SearchScope;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -59,6 +60,11 @@
 public class SearchRequestProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The typesOnly flag for this search request.
   private boolean typesOnly;
 
@@ -404,7 +410,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_SEQUENCE;
@@ -431,7 +437,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_BASE;
@@ -472,7 +478,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_SCOPE;
@@ -513,7 +519,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_DEREF;
@@ -531,7 +537,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_SIZE_LIMIT;
@@ -549,7 +555,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_TIME_LIMIT;
@@ -567,7 +573,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_TYPES_ONLY;
@@ -585,7 +591,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_FILTER;
@@ -609,7 +615,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REQUEST_DECODE_ATTRIBUTES;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
index 8bf5c71..c2f5c87 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
@@ -41,6 +41,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -57,6 +58,11 @@
 public class SearchResultDoneProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The matched DN for this response.
   private DN matchedDN;
 
@@ -317,7 +323,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_SEQUENCE;
@@ -344,7 +350,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_RESULT_CODE;
@@ -370,7 +376,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_MATCHED_DN;
@@ -392,7 +398,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_RESULT_DECODE_ERROR_MESSAGE;
@@ -423,7 +429,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_LDAP_RESULT_DECODE_REFERRALS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
index 270525c..ce61f60 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
@@ -51,6 +51,7 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -68,6 +69,11 @@
 public class SearchResultEntryProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of attributes for this search entry.
   private LinkedList<LDAPAttribute> attributes;
 
@@ -266,7 +272,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_SEARCH_ENTRY_DECODE_SEQUENCE;
@@ -293,7 +299,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_SEARCH_ENTRY_DECODE_DN;
@@ -318,7 +324,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_SEARCH_ENTRY_DECODE_ATTRS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
index 8b68318..4ea0884 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
@@ -40,6 +40,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -56,6 +57,11 @@
 public class SearchResultReferenceProtocolOp
        extends ProtocolOp
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of referral URLs for this search result reference.
   private List<String> referralURLs;
 
@@ -182,7 +188,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REFERENCE_DECODE_SEQUENCE;
@@ -203,7 +209,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_SEARCH_REFERENCE_DECODE_URLS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
index cd32fd7..e76d922 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
@@ -34,6 +34,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -51,6 +52,11 @@
        extends ProtocolOp
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new LDAP unbind request protocol op.
    */
   public UnbindRequestProtocolOp()
@@ -118,7 +124,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_UNBIND_DECODE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HeartbeatMonitor.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HeartbeatMonitor.java
index 767d197..c040325 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HeartbeatMonitor.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HeartbeatMonitor.java
@@ -27,8 +27,8 @@
 
 package org.opends.server.replication.plugin;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.io.IOException;
 
@@ -41,6 +41,11 @@
  */
 public class HeartbeatMonitor extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   /**
@@ -94,7 +99,7 @@
   {
     if (debugEnabled())
     {
-      debugInfo("Heartbeat monitor is starting, expected interval is %d",
+      TRACER.debugInfo("Heartbeat monitor is starting, expected interval is %d",
                 heartbeatInterval);
     }
     try
@@ -105,14 +110,14 @@
         long lastReceiveTime = session.getLastReceiveTime();
         if (now > lastReceiveTime + 2 * heartbeatInterval)
         {
-          debugInfo("Heartbeat monitor is closing the broker session " +
+          TRACER.debugInfo("Heartbeat monitor is closing the broker session " +
           "because it could not detect a heartbeat.");
 
           // Heartbeat is well overdue so the server is assumed to be dead.
           if (debugEnabled())
           {
-            debugInfo("Heartbeat monitor is closing the broker session " +
-                "because it could not detect a heartbeat.");
+            TRACER.debugInfo("Heartbeat monitor is closing the broker " +
+                "session because it could not detect a heartbeat.");
           }
           session.close();
           break;
@@ -135,7 +140,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Heartbeat monitor is exiting.");
+        TRACER.debugInfo("Heartbeat monitor is exiting.");
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
index a6268a4..913e039 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
@@ -27,8 +27,8 @@
 package org.opends.server.replication.plugin;
 
 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.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ReplicationMessages.*;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -74,6 +74,11 @@
  */
 public class ReplicationBroker implements InternalSearchListener
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private boolean shutdown = false;
   private Collection<String> servers;
   private boolean connected = false;
@@ -552,7 +557,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("ReplicationBroker Stop Closing session");
+        TRACER.debugInfo("ReplicationBroker Stop Closing session");
       }
 
       if (session != null)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
index 0d1f234..7d2566a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
@@ -28,8 +28,8 @@
 
 import static org.opends.server.config.ConfigConstants.DN_BACKEND_BASE;
 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.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.messages.ReplicationMessages.*;
@@ -121,6 +121,11 @@
 public class ReplicationDomain extends DirectoryThread
        implements ConfigurationChangeListener<MultimasterDomainCfg>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private ReplicationMonitor monitor;
 
   private ReplicationBroker broker;
@@ -1897,7 +1902,7 @@
   {
     if (debugEnabled())
     {
-      debugInfo("DebugInfo" + message);
+      TRACER.debugInfo("DebugInfo" + message);
     }
   }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/HeartbeatThread.java b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
index 651bee5..9723814 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/HeartbeatThread.java
@@ -28,9 +28,8 @@
 package org.opends.server.replication.protocol;
 
 import org.opends.server.api.DirectoryThread;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 import java.io.IOException;
 
@@ -41,6 +40,11 @@
  */
 public class HeartbeatThread extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   /**
    * For test purposes only to simulate loss of heartbeats.
@@ -90,7 +94,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Heartbeat thread is starting, interval is %d",
+        TRACER.debugInfo("Heartbeat thread is starting, interval is %d",
                   heartbeatInterval);
       }
       HeartbeatMessage heartbeatMessage = new HeartbeatMessage();
@@ -100,8 +104,8 @@
         long now = System.currentTimeMillis();
         if (debugEnabled())
         {
-          debugVerbose("Heartbeat thread awoke at %d, last message was sent " +
-              "at %d", now, session.getLastPublishTime());
+          TRACER.debugVerbose("Heartbeat thread awoke at %d, last message " +
+              "was sent at %d", now, session.getLastPublishTime());
         }
 
         if (now > session.getLastPublishTime() + heartbeatInterval)
@@ -110,7 +114,7 @@
           {
             if (debugEnabled())
             {
-              debugVerbose("Heartbeat sent at %d", now);
+              TRACER.debugVerbose("Heartbeat sent at %d", now);
             }
             session.publish(heartbeatMessage);
           }
@@ -127,7 +131,7 @@
 
           if (debugEnabled())
           {
-            debugVerbose("Heartbeat thread sleeping for %d", sleepTime);
+            TRACER.debugVerbose("Heartbeat thread sleeping for %d", sleepTime);
           }
           Thread.sleep(sleepTime);
         }
@@ -141,7 +145,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Heartbeat thread could not send a heartbeat.");
+        TRACER.debugInfo("Heartbeat thread could not send a heartbeat.");
       }
       // This will be caught in another thread.
     }
@@ -149,7 +153,7 @@
     {
       if (debugEnabled())
       {
-        debugInfo("Heartbeat thread is exiting.");
+        TRACER.debugInfo("Heartbeat thread is exiting.");
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index da70bfe..9a34d92 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -27,8 +27,8 @@
 package org.opends.server.replication.server;
 
 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.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ReplicationMessages.*;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
@@ -73,6 +73,11 @@
  */
 public class ServerHandler extends MonitorProvider
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private short serverId;
   private ProtocolSession session;
   private final MsgQueue msgQueue = new MsgQueue();
@@ -1285,7 +1290,7 @@
   public void process(RoutableMessage msg)
   {
     if (debugEnabled())
-      debugInfo("SH(" + replicationServerId + ") forwards " +
+      TRACER.debugInfo("SH(" + replicationServerId + ") forwards " +
                  msg + " to " + serverId);
 
     logError(ErrorLogCategory.SYNCHRONIZATION,
@@ -1306,7 +1311,7 @@
   public void send(RoutableMessage msg) throws IOException
   {
     if (debugEnabled())
-      debugInfo("SH(" + replicationServerId + ") forwards " +
+      TRACER.debugInfo("SH(" + replicationServerId + ") forwards " +
                  msg + " to " + serverId);
 
     logError(ErrorLogCategory.SYNCHRONIZATION,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java
index bc19eb9..61c7e93 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java
@@ -26,10 +26,10 @@
  */
 package org.opends.server.schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
 
@@ -57,6 +57,11 @@
 public final class AbsoluteSubtreeSpecificationSyntax extends
     AttributeSyntax {
 
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The default equality matching rule for this syntax.
   private EqualityMatchingRule defaultEqualityMatchingRule;
 
@@ -240,7 +245,7 @@
     } catch (DirectoryException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       invalidReason.append(e.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/AciSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/AciSyntax.java
index a4f4886..d79dda7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/AciSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/AciSyntax.java
@@ -43,8 +43,8 @@
 import org.opends.server.types.DebugLogLevel;
 
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import org.opends.server.authorization.dseecompat.Aci;
@@ -57,6 +57,11 @@
 public class AciSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -247,7 +252,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.ACCESS_CONTROL,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
index cfca5b4..14f8c0c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
@@ -49,8 +49,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -68,6 +68,11 @@
 public class AttributeTypeSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -223,7 +228,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
index ce05318..2bf25b4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.schema.SchemaConstants.*;
 
@@ -56,6 +56,11 @@
 public class AuthPasswordEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -219,7 +224,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return ConditionResult.FALSE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
index e871910..ed6bf82 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
@@ -41,10 +41,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.schema.SchemaConstants.*;
 
 
@@ -56,6 +56,11 @@
 public class AuthPasswordExactEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -179,7 +184,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
index 9b45937..0d92c67 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
@@ -51,8 +51,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -69,6 +69,11 @@
 public class DITContentRuleSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -224,7 +229,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
index 3c1aa9e..2c71011 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
@@ -49,8 +49,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -67,6 +67,11 @@
 public class DITStructureRuleSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -222,7 +227,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java
index 5e4c42f..8269907 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java
@@ -54,10 +54,10 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -75,6 +75,11 @@
        extends AttributeSyntax
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -210,7 +215,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_ATTR_SYNTAX_DIRECTORYSTRING_CANNOT_DETERMINE_ZEROLENGTH;
@@ -448,7 +453,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       configValid = false;
@@ -508,7 +513,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       resultCode = DirectoryServer.getServerErrorResultCode();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
index 2fa1b40..91da4de 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -59,6 +59,11 @@
 public class DistinguishedNameEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -172,7 +177,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       // See if we should try to proceed anyway with a bare-bones normalization.
@@ -188,7 +193,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (DirectoryServer.getSyntaxEnforcementPolicy() ==
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
index 2ac7309..61104de 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
@@ -44,9 +44,9 @@
 import org.opends.server.types.ErrorLogCategory;
 import org.opends.server.types.ErrorLogSeverity;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -62,6 +62,11 @@
 public class DistinguishedNameSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   // The default equality matching rule for this syntax.
@@ -261,7 +266,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
@@ -271,7 +276,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ATTR_SYNTAX_DN_INVALID;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
index a28b629..506f253 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
@@ -39,8 +39,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.DebugLogLevel;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.schema.SchemaConstants.*;
 
 
@@ -67,6 +67,11 @@
 public class DoubleMetaphoneApproximateMatchingRule
        extends ApproximateMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -1225,7 +1230,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
index 9f4a0f1..f247fcf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
@@ -43,10 +43,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -59,6 +59,11 @@
        extends EqualityMatchingRule
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The lock that will be used to provide threadsafe access to the date
    * formatter.
    */
@@ -206,7 +211,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
@@ -249,7 +254,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
index 8a420db..5a8bd5a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
@@ -43,10 +43,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -59,6 +59,11 @@
        extends OrderingMatchingRule
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The serial version identifier required to satisfy the compiler because this
    * class implements the <CODE>java.io.Serializable</CODE> interface.  This
    * value was generated using the <CODE>serialver</CODE> command-line utility
@@ -216,7 +221,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       switch (DirectoryServer.getSyntaxEnforcementPolicy())
@@ -274,7 +279,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       return 0;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
index 5020a69..63b44e0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
@@ -51,10 +51,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -73,6 +73,11 @@
        extends AttributeSyntax
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The lock that will be used to provide threadsafe access to the date
    * formatter.
    */
@@ -366,7 +371,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This should never happen.
@@ -997,7 +1002,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1035,7 +1040,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1184,7 +1189,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1222,7 +1227,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1282,7 +1287,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1321,7 +1326,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // This should only happen if the provided date wasn't legal
@@ -1468,7 +1473,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This should only happen if the provided date wasn't legal
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
index d175701..f4ed20c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
@@ -38,8 +38,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -59,6 +59,11 @@
 public class IntegerFirstComponentEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -221,7 +226,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
@@ -281,7 +286,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_EMR_INTFIRSTCOMP_NO_INITIAL_PARENTHESIS;
@@ -334,7 +339,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_EMR_INTFIRSTCOMP_FIRST_COMPONENT_NOT_INT;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
index 8881ce0..4dc7c4a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
@@ -61,6 +61,11 @@
 public class LDAPSyntaxDescriptionSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -415,7 +420,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_TOKEN;
@@ -442,7 +447,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ATTR_SYNTAX_ATTRSYNTAX_CANNOT_READ_DESC_VALUE;
@@ -458,7 +463,7 @@
         } catch (Exception e) {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
             int msgID = MSGID_ATTR_SYNTAX_ATTRSYNTAX_INVALID_EXTENSION;
             invalidReason.append(getMessage(msgID, getExceptionMessage(e)));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
index 4fc0c94..a59a724 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
@@ -45,10 +45,10 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
@@ -64,6 +64,11 @@
 public class MatchingRuleSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -416,7 +421,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         invalidReason.append(de.getErrorMessage());
@@ -457,7 +462,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             invalidReason.append(de.getErrorMessage());
@@ -480,7 +485,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, de);
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
             }
 
             invalidReason.append(de.getErrorMessage());
@@ -517,7 +522,7 @@
               {
                 if (debugEnabled())
                 {
-                  debugCaught(DebugLogLevel.ERROR, de);
+                  TRACER.debugCaught(DebugLogLevel.ERROR, de);
                 }
 
                 invalidReason.append(de.getErrorMessage());
@@ -550,7 +555,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           invalidReason.append(de.getErrorMessage());
@@ -576,7 +581,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           invalidReason.append(de.getErrorMessage());
@@ -614,7 +619,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, de);
+            TRACER.debugCaught(DebugLogLevel.ERROR, de);
           }
 
           invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
index 7093a28..a6cca49 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
@@ -50,8 +50,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -68,6 +68,11 @@
 public class MatchingRuleUseSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -223,7 +228,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
index 5d1c306..b9ffb0c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
@@ -41,8 +41,8 @@
 import org.opends.server.types.ErrorLogCategory;
 import org.opends.server.types.ErrorLogSeverity;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
@@ -60,6 +60,11 @@
 public class NameAndOptionalUIDSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -259,7 +264,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the DN for some reason.  The value cannot be
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java
index f027c10..1139551 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java
@@ -51,8 +51,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -69,6 +69,11 @@
 public class NameFormSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -224,7 +229,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
index 112e4a2..643f58b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
@@ -52,8 +52,8 @@
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.Schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -71,6 +71,11 @@
 public class ObjectClassSyntax
        extends AttributeSyntax
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -226,7 +231,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       invalidReason.append(de.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java
index 6c68329..b7bf420 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -58,6 +58,12 @@
 public final class RFC3672SubtreeSpecificationSyntax extends
     AttributeSyntax {
 
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+
   // The default equality matching rule for this syntax.
   private EqualityMatchingRule defaultEqualityMatchingRule;
 
@@ -268,7 +274,7 @@
     } catch (DirectoryException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       invalidReason.append(e.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java
index c49fbdb..3188d64 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.schema;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.messages.SchemaMessages.*;
@@ -58,6 +58,12 @@
 public final class RelativeSubtreeSpecificationSyntax extends
     AttributeSyntax {
 
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+
   // The default equality matching rule for this syntax.
   private EqualityMatchingRule defaultEqualityMatchingRule;
 
@@ -269,7 +275,7 @@
     } catch (DirectoryException e) {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       invalidReason.append(e.getErrorMessage());
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
index 16cf18a..bc719d8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
@@ -51,8 +51,8 @@
 import org.opends.server.types.ResultCode;
 
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -74,6 +74,11 @@
        extends AttributeSyntax
        implements ConfigurableComponent
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -165,7 +170,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         msgID = MSGID_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE;
@@ -477,7 +482,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE;
@@ -545,7 +550,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       msgID = MSGID_ATTR_SYNTAX_TELEPHONE_CANNOT_DETERMINE_STRICT_MODE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java b/opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java
index 8de339c..b716a8e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java
@@ -49,8 +49,8 @@
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
@@ -72,6 +72,11 @@
        extends AttributeSyntax
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The lock that will be used to provide threadsafe access to the date
    * formatter.
    */
@@ -878,7 +883,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This should never happen.
@@ -934,7 +939,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
index 2f69953..9dfa769 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
@@ -43,8 +43,8 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
@@ -63,6 +63,11 @@
 public class UniqueMemberEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -195,7 +200,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the DN for some reason.  If we're supposed to use
diff --git a/opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java b/opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
index ba30cdc..e683a97 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
@@ -42,8 +42,8 @@
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.schema.SchemaConstants.*;
 
@@ -56,6 +56,11 @@
 public class UserPasswordEqualityMatchingRule
        extends EqualityMatchingRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -218,7 +223,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return ConditionResult.FALSE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
index e8a828c..b4d2bca 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
@@ -62,6 +62,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.TaskMessages.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -76,6 +77,11 @@
 public class AddSchemaFileTask
        extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The list of files to be added to the server schema.
   TreeSet<String> filesToAdd;
 
@@ -146,7 +152,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_TASK_ADDSCHEMAFILE_ERROR_CHECKING_FOR_FILE;
@@ -175,7 +181,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ce);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ce);
         }
 
         int    msgID   = MSGID_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE;
@@ -188,7 +194,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         int    msgID   = MSGID_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE;
@@ -271,7 +277,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ce);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ce);
           }
 
           int    msgID   = MSGID_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE;
@@ -285,7 +291,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ie);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ie);
           }
 
           int    msgID   = MSGID_TASK_ADDSCHEMAFILE_ERROR_LOADING_SCHEMA_FILE;
@@ -310,7 +316,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             int msgID = MSGID_TASK_ADDSCHEMAFILE_CANNOT_NOTIFY_SYNC_PROVIDER;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java
index c3e9a41..c1a0891 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java
@@ -29,8 +29,8 @@
 import static org.opends.server.messages.TaskMessages.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.config.ConfigConstants.*;
@@ -66,6 +66,11 @@
  */
 public class ImportTask extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -480,7 +485,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
@@ -510,7 +515,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIFIMPORT_CANNOT_LOCK_BACKEND;
@@ -531,7 +536,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         DirectoryServer.notifyImportEnded(backend, importConfig, false);
@@ -545,7 +550,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         DirectoryServer.notifyImportEnded(backend, importConfig, false);
@@ -576,7 +581,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_LDIFIMPORT_CANNOT_UNLOCK_BACKEND;
@@ -604,7 +609,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTargetTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTargetTask.java
index 82bfad7..e586f78 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTargetTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTargetTask.java
@@ -28,8 +28,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.getAttributeType;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 
@@ -60,6 +60,11 @@
  */
 public class InitializeTargetTask extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Config properties
   boolean append                  = false;
   boolean isCompressed            = false;
@@ -120,7 +125,7 @@
   {
     if (debugEnabled())
     {
-      debugInfo("DebugInfo" + "InitializeTarget Task/runTask ");
+      TRACER.debugInfo("DebugInfo" + "InitializeTarget Task/runTask ");
     }
     try
     {
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTask.java
index 0fcfd92..2733b89 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/InitializeTask.java
@@ -28,8 +28,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.getAttributeType;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 
@@ -61,6 +61,11 @@
  */
 public class InitializeTask extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   boolean isCompressed            = false;
   boolean isEncrypted             = false;
   boolean skipSchemaValidation    = false;
@@ -128,7 +133,7 @@
   {
     if (debugEnabled())
     {
-      debugInfo("InitializeTask is starting domain: %s source:%d",
+      TRACER.debugInfo("InitializeTask is starting domain: %s source:%d",
                 domain.getBaseDN(), source);
     }
     initState = getTaskState(); // RUNNING
@@ -162,7 +167,7 @@
 
     if (debugEnabled())
     {
-      debugInfo("InitializeTask is ending with state:%d", initState);
+      TRACER.debugInfo("InitializeTask is ending with state:%d", initState);
     }
     return initState;
   }
@@ -190,7 +195,7 @@
         logError(ErrorLogCategory.TASK,
             ErrorLogSeverity.SEVERE_ERROR,
             "setState: "+newState, 1);
-        debugInfo("InitializeTask/setState: ", newState);
+        TRACER.debugInfo("InitializeTask/setState: ", newState);
       }
       initState = newState;
       synchronized (initState)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/RebuildTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/RebuildTask.java
index 4c9c9c7..fd1bfb7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/RebuildTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/RebuildTask.java
@@ -48,8 +48,8 @@
 
 import static org.opends.server.core.DirectoryServer.getAttributeType;
 import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.TaskMessages.
     MSGID_TASK_INDEXREBUILD_INSUFFICIENT_PRIVILEGES;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -83,6 +83,11 @@
  */
 public class RebuildTask extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   String baseDN = null;
   ArrayList<String> indexes = null;
   int maxThreads = -1;
@@ -199,7 +204,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
@@ -266,7 +271,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_REBUILDINDEX_ERROR_DURING_REBUILD;
@@ -312,7 +317,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
index 672b48d..5098980 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
@@ -32,8 +32,8 @@
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 import org.opends.server.backends.task.Task;
@@ -67,6 +67,11 @@
  */
 public class RestoreTask extends Task
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -260,7 +265,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int    msgID   = MSGID_RESTOREDB_NO_BACKENDS_FOR_DN;
       String message = getMessage(msgID, backupDirectory,
@@ -304,7 +309,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
@@ -373,7 +378,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java
index a4caaa1..8239c98 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.tasks;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.messages.MessageHandler.getMessage;
@@ -72,6 +72,11 @@
  */
 public class TaskUtils
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -480,7 +485,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
index eb6d6c3..d37907d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
@@ -62,6 +62,7 @@
 import org.opends.server.util.args.StringArgument;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -77,6 +78,11 @@
 public class LDAPCompare
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME =
@@ -212,7 +218,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
         if (!compareOptions.continueOnError())
         {
@@ -636,7 +642,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE;
@@ -676,7 +682,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -696,7 +702,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -718,7 +724,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
         }
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -900,7 +906,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
       LDAPToolUtils.printErrorMessage(err, le.getMessage(), le.getResultCode(),
                                       le.getErrorMessage(), le.getMatchedDN());
@@ -910,7 +916,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, lce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
       }
       LDAPToolUtils.printErrorMessage(err, lce.getMessage(),
                                       lce.getResultCode(),
@@ -922,7 +928,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java
index f8f1d84..0145bba 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java
@@ -51,6 +51,7 @@
 import org.opends.server.types.LDAPException;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.CoreMessages.
                    MSGID_RESULT_CLIENT_SIDE_CONNECT_ERROR;
@@ -67,6 +68,11 @@
  */
 public class LDAPConnection
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The hostname to connect to.
   private String hostName = null;
 
@@ -177,7 +183,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
         }
         throw new LDAPConnectionException(ex.getMessage(), ex);
       }
@@ -198,7 +204,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex1);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex1);
         }
         throw new LDAPConnectionException(ex1.getMessage(), ex1);
       }
@@ -248,7 +254,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ex2);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ex2);
       }
       throw new LDAPConnectionException(ex2.getMessage(), ex2);
     }
@@ -263,7 +269,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       // It doesn't matter too much if this throws, so ignore it.
     }
@@ -404,7 +410,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ce);
       }
       throw new LDAPConnectionException(ce.getMessage(), ce.getExitCode(),
                                         null, ce);
@@ -417,7 +423,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ex);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
       }
       throw new LDAPConnectionException(ex.getMessage(), ex);
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
index 9f4d160..58b0787 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
@@ -58,8 +58,8 @@
 import org.opends.server.util.args.IntegerArgument;
 import org.opends.server.util.args.StringArgument;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -75,6 +75,11 @@
 public class LDAPDelete
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME = "org.opends.server.tools.LDAPDelete";
@@ -197,7 +202,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ae);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ae);
         }
         if (!deleteOptions.continueOnError())
         {
@@ -566,7 +571,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -586,7 +591,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -607,7 +612,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
         }
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -778,7 +783,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
       LDAPToolUtils.printErrorMessage(err, le.getMessage(), le.getResultCode(),
                                       le.getErrorMessage(), le.getMatchedDN());
@@ -788,7 +793,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, lce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
       }
       LDAPToolUtils.printErrorMessage(err, lce.getMessage(),
                                       lce.getResultCode(),
@@ -800,7 +805,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
index f103a20..a2bc7de 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
@@ -78,8 +78,8 @@
 import org.opends.server.util.args.IntegerArgument;
 import org.opends.server.util.args.StringArgument;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -96,6 +96,11 @@
 public class LDAPModify
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME = "org.opends.server.tools.LDAPModify";
@@ -168,7 +173,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_LDIF_FILE_CANNOT_OPEN_FOR_READ;
       String message = getMessage(msgID, is, String.valueOf(e));
@@ -186,7 +191,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, le);
+          TRACER.debugCaught(DebugLogLevel.ERROR, le);
         }
         if (!modifyOptions.continueOnError())
         {
@@ -198,7 +203,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
           }
 
@@ -219,7 +224,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         if (!modifyOptions.continueOnError())
@@ -232,7 +237,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e2);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e2);
             }
           }
 
@@ -260,7 +265,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -345,7 +350,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ae);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ae);
           }
           msgID = MSGID_OPERATION_FAILED;
           String message = getMessage(msgID, operationType);
@@ -883,7 +888,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -903,7 +908,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -924,7 +929,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
         }
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -1141,7 +1146,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
       LDAPToolUtils.printErrorMessage(err, le.getMessage(), le.getResultCode(),
                                       le.getErrorMessage(), le.getMatchedDN());
@@ -1151,7 +1156,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, lce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
       }
       LDAPToolUtils.printErrorMessage(err, lce.getMessage(),
                                       lce.getResultCode(),
@@ -1163,7 +1168,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
index c54aaf0..2d931e1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -74,6 +74,7 @@
 import org.opends.server.types.*;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -92,6 +93,11 @@
 public class LDAPSearch
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The fully-qualified name of this class.
    */
   private static final String CLASS_NAME = "org.opends.server.tools.LDAPSearch";
@@ -390,7 +396,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, ae);
+            TRACER.debugCaught(DebugLogLevel.ERROR, ae);
           }
           throw new IOException(ae.getMessage());
         }
@@ -987,7 +993,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, le);
+          TRACER.debugCaught(DebugLogLevel.ERROR, le);
         }
         err.println(wrapText(le.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -1045,7 +1051,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -1066,7 +1072,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ae);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ae);
       }
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return 1;
@@ -1096,7 +1102,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ex);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
         }
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -1532,7 +1538,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
         return 1;
@@ -1697,7 +1703,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, le);
+        TRACER.debugCaught(DebugLogLevel.ERROR, le);
       }
 
       LDAPToolUtils.printErrorMessage(err, le.getMessage(), le.getResultCode(),
@@ -1708,7 +1714,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, lce);
+        TRACER.debugCaught(DebugLogLevel.ERROR, lce);
       }
       LDAPToolUtils.printErrorMessage(err, lce.getMessage(),
                                       lce.getResultCode(),
@@ -1720,7 +1726,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return 1;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java b/opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java
index dac928f..146c6be 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java
@@ -45,8 +45,8 @@
 
 import static org.opends.server.messages.ToolMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -55,6 +55,11 @@
  */
 public class SSLConnectionFactory
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
   private SSLSocketFactory sslSocketFactory = null;
 
@@ -247,7 +252,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_TOOLS_CANNOT_LOAD_KEYSTORE_FILE;
       throw new SSLConnectionException(getMessage(msgID, keyStoreFile), e);
@@ -265,7 +270,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ke);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ke);
       }
       int msgID = MSGID_TOOLS_CANNOT_INIT_KEYMANAGER;
       throw new SSLConnectionException(getMessage(msgID, keyStoreFile), ke);
@@ -339,7 +344,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int msgID = MSGID_TOOLS_CANNOT_LOAD_TRUSTSTORE_FILE;
       throw new SSLConnectionException(getMessage(msgID, trustStoreFile), e);
@@ -357,7 +362,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, ke);
+        TRACER.debugCaught(DebugLogLevel.ERROR, ke);
       }
       int msgID = MSGID_TOOLS_CANNOT_INIT_TRUSTMANAGER;
       throw new SSLConnectionException(getMessage(msgID, trustStoreFile), ke);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java b/opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java
index 4af9618..847a476 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java
@@ -41,6 +41,7 @@
 import org.opends.server.util.Base64;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -52,6 +53,11 @@
  */
 public class Attribute
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for this attribute.
   private final AttributeType attributeType;
 
@@ -524,7 +530,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The substring couldn't be normalized.  We have to return
@@ -554,7 +560,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // The substring couldn't be normalized.  We have to return
@@ -581,7 +587,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The substring couldn't be normalized.  We have to return
@@ -609,7 +615,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // The value couldn't be normalized.  If we can't find a
@@ -652,7 +658,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -677,7 +683,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
@@ -721,7 +727,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -746,7 +752,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
@@ -790,7 +796,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We couldn't normalize the provided value.  We should return
@@ -813,7 +819,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // We couldn't normalize one of the attribute values.  If we
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java b/opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java
index b0218a6..c310891 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java
@@ -41,6 +41,7 @@
 import org.opends.server.schema.AttributeTypeSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -67,6 +68,11 @@
        extends CommonSchemaElements
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The approximate matching rule for this attribute type.
   private final ApproximateMatchingRule approximateMatchingRule;
 
@@ -285,7 +291,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
@@ -705,7 +711,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -716,7 +722,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
 
         return 0;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java b/opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java
index d4dc682..494b8bc 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java
@@ -31,10 +31,8 @@
 import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.protocols.asn1.ASN1OctetString;
 
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.Validator.*;
 
@@ -51,6 +49,11 @@
  */
 public class AttributeValue
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
   // The normalized form of this value.
@@ -407,7 +410,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         return value.equals(attrValue.getValue());
@@ -450,7 +453,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return value.hashCode();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java b/opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java
index c16ad45..392dfca 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java
@@ -39,10 +39,8 @@
 
 import org.opends.server.config.ConfigException;
 
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -58,6 +56,11 @@
  */
 public class BackupDirectory
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -324,7 +327,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_BACKUPDIRECTORY_CANNOT_CREATE_DIRECTORY;
@@ -398,7 +401,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID =
@@ -419,7 +422,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID =
@@ -442,7 +445,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKUPDIRECTORY_CANNOT_RENAME_NEW_DESCRIPTOR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java b/opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java
index 34e0e77..3d192a3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java
@@ -38,10 +38,8 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.util.Base64;
 
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -55,6 +53,11 @@
  */
 public class BackupInfo
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -595,7 +598,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_BACKUPINFO_CANNOT_DECODE;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java b/opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java
index 451eaa0..3ebf10b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java
@@ -48,10 +48,8 @@
 
 import org.opends.server.config.ConfigException;
 
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.StaticUtils.*;
 
 
@@ -68,6 +66,11 @@
  */
 public class CryptoManager
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -123,7 +126,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // FIXME -- Number this.
@@ -141,7 +144,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // FIXME -- Number this.
@@ -159,7 +162,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // FIXME -- Number this.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java b/opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java
index c9adca7..c3eadbd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java
@@ -39,6 +39,7 @@
 import org.opends.server.schema.DITContentRuleSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -56,6 +57,11 @@
 public final class DITContentRule
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether this content rule is declared "obsolete".
   private final boolean isObsolete;
 
@@ -152,7 +158,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java b/opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java
index 9251fc1..ed82729 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java
@@ -39,6 +39,7 @@
 import org.opends.server.schema.DITStructureRuleSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -54,6 +55,11 @@
 public final class DITStructureRule
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether this DIT structure rule is declared "obsolete".
   private final boolean isObsolete;
 
@@ -133,7 +139,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/DN.java b/opendj-sdk/opends/src/server/org/opends/server/types/DN.java
index fc6e7fd..f0a602b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/DN.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/DN.java
@@ -46,6 +46,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.SchemaMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -61,6 +62,11 @@
        implements Comparable<DN>, Serializable
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * A singleton instance of the null DN (a DN with no components).
    */
   public static DN NULL_DN = new DN();
@@ -2210,7 +2216,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE;
@@ -2260,7 +2266,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This should never happen.  Just in case, work around it by
@@ -2336,7 +2342,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         // This should never happen.  Just in case, work around it by
@@ -2478,7 +2484,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int msgID = MSGID_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE;
@@ -2710,7 +2716,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE;
@@ -2758,7 +2764,7 @@
       // conditions.
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       return false;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/Entry.java b/opendj-sdk/opends/src/server/org/opends/server/types/Entry.java
index c722da8..6acdc91 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/Entry.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/Entry.java
@@ -54,6 +54,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -85,6 +86,11 @@
 public class Entry
        implements ProtocolElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether virtual attribute processing has been performed
   // for this entry.
   private boolean virtualAttributeProcessingPerformed;
@@ -317,7 +323,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         lowerName = toLowerCase(v.getStringValue());
@@ -369,7 +375,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       lowerName = toLowerCase(name);
@@ -454,7 +460,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         lowerName = toLowerCase(v.getStringValue());
@@ -1855,7 +1861,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           ocName = toLowerCase(v.getStringValue());
@@ -2791,7 +2797,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int    msgID   = MSGID_ENTRY_SCHEMA_COULD_NOT_CHECK_DSR;
@@ -2902,7 +2908,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               int msgID =
@@ -3303,7 +3309,7 @@
       // objectclass defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s objectclass is defined in the server schema.",
                      OC_REFERRAL);
       }
@@ -3332,7 +3338,7 @@
       // attribute type defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s attribute type is defined in the server schema.",
                      ATTR_REFERRAL_URL);
       }
@@ -3364,7 +3370,7 @@
       // attribute type defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s attribute type is defined in the server schema.",
                      ATTR_REFERRAL_URL);
       }
@@ -3412,7 +3418,7 @@
       // objectclass defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s objectclass is defined in the server schema.",
                      OC_ALIAS);
       }
@@ -3441,7 +3447,7 @@
       // aliasedObjectName attribute type defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s attribute type is defined in the server schema.",
                      ATTR_ALIAS_DN);
       }
@@ -3477,7 +3483,7 @@
       // aliasedObjectName attribute type defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s attribute type is defined in the server schema.",
                      ATTR_ALIAS_DN);
       }
@@ -3540,7 +3546,7 @@
       // ldapsubentry objectclass defined.
       if (debugEnabled())
       {
-        debugWarning(
+        TRACER.debugWarning(
             "No %s objectclass is defined in the server schema.",
                      OC_LDAP_SUBENTRY);
       }
@@ -4416,7 +4422,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_ENTRY_DECODE_EXCEPTION;
@@ -4535,7 +4541,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo(
+          TRACER.debugInfo(
               "Skipping entry %s because of the export " +
                   "configuration.", String.valueOf(dn));
         }
@@ -4546,7 +4552,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_EXPORT;
@@ -4607,7 +4613,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose(
+        TRACER.debugVerbose(
             "Skipping objectclasses for entry %s because of " +
             "the export configuration.", String.valueOf(dn));
       }
@@ -4664,7 +4670,7 @@
       {
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Skipping user attribute %s for entry %s because of " +
                        "the export configuration.",
               attrType.getNameOrOID(), String.valueOf(dn));
@@ -4727,7 +4733,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Skipping operational attribute %s for entry %s " +
                          "because of the export configuration.",
                          attrType.getNameOrOID(), String.valueOf(dn));
@@ -4739,7 +4745,7 @@
     {
       if (debugEnabled())
       {
-        debugVerbose(
+        TRACER.debugVerbose(
             "Skipping all operational attributes for entry %s " +
             "because of the export configuration.",
             String.valueOf(dn));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java b/opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java
index ce5d1c5..c68f192 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java
@@ -35,9 +35,8 @@
 
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -64,6 +63,11 @@
  */
 public class FilePermission
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -193,7 +197,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -586,7 +590,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_FILEPERM_CANNOT_EXEC_CHMOD;
@@ -658,7 +662,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         exceptionThrown = true;
       }
@@ -694,7 +698,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       exceptionThrown = true;
     }
@@ -720,7 +724,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         exceptionThrown = true;
       }
@@ -748,7 +752,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       exceptionThrown = true;
     }
@@ -782,7 +786,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         exceptionThrown = true;
       }
@@ -818,7 +822,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       exceptionThrown = true;
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java b/opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java
index 69d55e5..974c36d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java
@@ -36,9 +36,8 @@
 import org.opends.server.api.InvokableComponent;
 import org.opends.server.config.ConfigAttribute;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 
 
@@ -48,6 +47,11 @@
  */
 public class InvokableMethod
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -317,7 +321,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw new MBeanException(de, de.getErrorMessage());
@@ -326,7 +330,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       throw new MBeanException(e);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java b/opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java
index c312cfa..3e19f56 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java
@@ -36,6 +36,7 @@
 import org.opends.server.core.DirectoryServer;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -52,6 +53,11 @@
 public class LDAPURL
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The default scheme that will be used if none is provided.
    */
   public static final String DEFAULT_SCHEME = "ldap";
@@ -414,7 +420,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_LDAPURL_CANNOT_DECODE_PORT;
@@ -852,7 +858,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This should never happen.
@@ -1393,7 +1399,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (rawBaseDN == null)
@@ -1431,7 +1437,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (rawFilter == null)
@@ -1529,7 +1535,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (rawBaseDN != null)
@@ -1553,7 +1559,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       if (rawFilter != null)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java b/opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java
index 793d175..688f507 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java
@@ -40,9 +40,8 @@
 import java.util.Set;
 import java.util.zip.GZIPOutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
 
@@ -54,6 +53,11 @@
  */
 public class LDIFExportConfig
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether the data should be compressed as it is written.
   private boolean compressData;
 
@@ -890,7 +894,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java b/opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java
index 9341cf2..4741e56 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java
@@ -49,9 +49,8 @@
 import org.opends.server.tools.makeldif.MakeLDIFInputStream;
 import org.opends.server.tools.makeldif.TemplateFile;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
 
@@ -63,6 +62,11 @@
  */
 public class LDIFImportConfig
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -1199,7 +1203,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
     }
 
@@ -1213,7 +1217,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java b/opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java
index 0bb541d..63d9f9e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java
@@ -34,6 +34,7 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -48,6 +49,11 @@
 public class LockManager
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * The default initial size to use for the lock table.
    */
   public static final int DEFAULT_INITIAL_TABLE_SIZE = 64;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java b/opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java
index e9c8688..4e75e82 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java
@@ -40,6 +40,7 @@
 import org.opends.server.schema.MatchingRuleUseSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.Validator.*;
@@ -55,6 +56,11 @@
 public final class MatchingRuleUse
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether this matching rule use is declared "obsolete".
   private final boolean isObsolete;
 
@@ -132,7 +138,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java b/opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java
index 2485a9a..5db2850 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java
@@ -39,6 +39,7 @@
 import org.opends.server.schema.NameFormSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.Validator.*;
@@ -54,6 +55,11 @@
 public final class NameForm
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // Indicates whether this name form is declared "obsolete".
   private final boolean isObsolete;
 
@@ -139,7 +145,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java b/opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java
index f96f197..05aef29 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java
@@ -40,6 +40,7 @@
 import org.opends.server.schema.ObjectClassSyntax;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.Validator.*;
 
@@ -64,6 +65,11 @@
        extends CommonSchemaElements
        implements SchemaFileElement
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The set of optional attribute types for this objectclass.
   private final Set<AttributeType> optionalAttributes;
 
@@ -169,7 +175,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         defStr = definition;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/RDN.java b/opendj-sdk/opends/src/server/org/opends/server/types/RDN.java
index 843e068..49b323e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/RDN.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/RDN.java
@@ -37,9 +37,8 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.asn1.ASN1OctetString;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -54,6 +53,11 @@
 public class RDN
        implements Comparable<RDN>
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -980,7 +984,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         buffer.append(attributeValues[0].getStringValue());
@@ -1004,7 +1008,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           b2.append(attributeValues[i].getStringValue());
@@ -1064,7 +1068,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return attributeValues[0].getStringValue().
@@ -1084,7 +1088,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             return omr.compareValues(
@@ -1158,7 +1162,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             valueComparison =
@@ -1178,7 +1182,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             valueComparison =
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/RawAttribute.java b/opendj-sdk/opends/src/server/org/opends/server/types/RawAttribute.java
index 583aef6..0053eba 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/RawAttribute.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/RawAttribute.java
@@ -38,6 +38,7 @@
 import org.opends.server.protocols.ldap.LDAPAttribute;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPResultCode.*;
@@ -54,6 +55,11 @@
 public abstract class RawAttribute
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new raw attribute with the provided type and no values.
    *
    * @param  attributeType  The attribute type for this attribute.  It
@@ -266,7 +272,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ATTRIBUTE_DECODE_SEQUENCE;
@@ -294,7 +300,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ATTRIBUTE_DECODE_TYPE;
@@ -318,7 +324,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_ATTRIBUTE_DECODE_VALUES;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/RawFilter.java b/opendj-sdk/opends/src/server/org/opends/server/types/RawFilter.java
index 950cf00..a8d45c0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/RawFilter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/RawFilter.java
@@ -38,6 +38,7 @@
 import org.opends.server.protocols.ldap.LDAPFilter;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -54,6 +55,11 @@
 public abstract class RawFilter
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new LDAP filter from the provided filter string.
    *
    * @param  filterString  The filter string to use to create this raw
@@ -627,7 +633,8 @@
       default:
         if (debugEnabled())
         {
-          debugError("Invalid search filter type: %s", filterType);
+          TRACER.debugError("Invalid search filter type: %s",
+                            filterType);
         }
         return null;
     }
@@ -717,8 +724,8 @@
         // This should never happen.
         if (debugEnabled())
         {
-          debugError("Invalid filter type %x for a compound filter",
-                     element.getType());
+          TRACER.debugError("Invalid filter type %x for a " +
+              "compound filter", element.getType());
         }
         filterType = null;
     }
@@ -733,7 +740,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_FILTER_DECODE_COMPOUND_SET;
@@ -759,7 +766,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_FILTER_DECODE_COMPOUND_COMPONENTS;
@@ -797,7 +804,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_NOT_ELEMENT;
@@ -819,7 +826,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_NOT_COMPONENT;
@@ -870,8 +877,8 @@
         // This should never happen.
         if (debugEnabled())
         {
-          debugError("Invalid filter type %x for a type-and-value " +
-                     "filter", element.getType());
+          TRACER.debugError("Invalid filter type %x for a " +
+              "type-and-value filter", element.getType());
         }
         filterType = null;
     }
@@ -886,7 +893,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_TV_SEQUENCE;
@@ -913,7 +920,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_TV_TYPE;
@@ -931,7 +938,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_TV_VALUE;
@@ -970,7 +977,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_SUBSTRING_SEQUENCE;
@@ -998,7 +1005,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_SUBSTRING_TYPE;
@@ -1016,7 +1023,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_SUBSTRING_ELEMENTS;
@@ -1072,7 +1079,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_SUBSTRING_VALUES;
@@ -1112,7 +1119,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_PRESENCE_TYPE;
@@ -1152,7 +1159,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_EXTENSIBLE_SEQUENCE;
@@ -1199,7 +1206,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_LDAP_FILTER_DECODE_EXTENSIBLE_ELEMENTS;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/RawModification.java b/opendj-sdk/opends/src/server/org/opends/server/types/RawModification.java
index 9977d7ca..e4a1a4a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/RawModification.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/RawModification.java
@@ -37,6 +37,7 @@
 import org.opends.server.protocols.ldap.LDAPModification;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.ProtocolMessages.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -53,6 +54,11 @@
 public abstract class RawModification
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Creates a new raw modification with the provided type and
    * attribute.
    *
@@ -249,7 +255,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFICATION_DECODE_SEQUENCE;
@@ -301,7 +307,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFICATION_DECODE_MOD_TYPE;
@@ -319,7 +325,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int msgID = MSGID_LDAP_MODIFICATION_DECODE_ATTR;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
index dad1894..a22a547 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
@@ -53,6 +53,7 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.messages.BackendMessages.*;
 import static org.opends.server.messages.CoreMessages.*;
@@ -80,6 +81,11 @@
  */
 public class Schema
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
 
 
 
@@ -2944,7 +2950,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // This is definitely not ideal, but it's not the end of the
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java b/opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java
index 64a2a2a..6e6d8b9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java
@@ -42,12 +42,8 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.asn1.ASN1OctetString;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static
-    org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.messages.CoreMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
@@ -63,6 +59,11 @@
  */
 public class SearchFilter
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for this filter.
   private final AttributeType attributeType;
 
@@ -601,7 +602,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
 
       throw de;
@@ -610,7 +611,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       int    msgID   = MSGID_SEARCH_FILTER_UNCAUGHT_EXCEPTION;
@@ -2301,7 +2302,8 @@
           // always return true.
           if (debugEnabled())
           {
-            debugInfo("Returning TRUE for LDAP TRUE filter (&)");
+            TRACER.debugInfo("Returning TRUE for LDAP TRUE " +
+                "filter (&)");
           }
           return ConditionResult.TRUE;
         }
@@ -2333,7 +2335,7 @@
               case FALSE:
                 if (debugEnabled())
                 {
-                  debugVerbose(
+                  TRACER.debugVerbose(
                       "Returning FALSE for AND component %s in " +
                       "filter %s for entry %s",
                                f, completeFilter, entry.getDN());
@@ -2342,7 +2344,7 @@
               case UNDEFINED:
                 if (debugEnabled())
                 {
-                  debugInfo(
+                  TRACER.debugInfo(
                  "Undefined result for AND component %s in filter " +
                  "%s for entry %s", f, completeFilter, entry.getDN());
                 }
@@ -2364,7 +2366,7 @@
           // matched.
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning TRUE for AND component %s in filter %s " +
                 "for entry %s", this, completeFilter, entry.getDN());
           }
@@ -2393,7 +2395,8 @@
           // always return false.
           if (debugEnabled())
           {
-            debugInfo("Returning FALSE for LDAP FALSE filter (|)");
+            TRACER.debugInfo("Returning FALSE for LDAP FALSE " +
+                "filter (|)");
           }
           return ConditionResult.FALSE;
         }
@@ -2422,7 +2425,7 @@
               case TRUE:
                 if (debugEnabled())
                 {
-                  debugVerbose(
+                  TRACER.debugVerbose(
                     "Returning TRUE for OR component %s in filter " +
                     "%s for entry %s",
                     f, completeFilter, entry.getDN());
@@ -2433,7 +2436,7 @@
               case UNDEFINED:
                 if (debugEnabled())
                 {
-                  debugInfo(
+                  TRACER.debugInfo(
                   "Undefined result for OR component %s in filter " +
                   "%s for entry %s",
                   f, completeFilter, entry.getDN());
@@ -2456,7 +2459,7 @@
 
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning %s for OR component %s in filter %s for " +
                 "entry %s", result, this, completeFilter,
                             entry.getDN());
@@ -2501,7 +2504,7 @@
             case TRUE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                    "Returning FALSE for NOT component %s in filter " +
                    "%s for entry %s",
                    notComponent, completeFilter, entry.getDN());
@@ -2510,7 +2513,7 @@
             case FALSE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Returning TRUE for NOT component %s in filter " +
                     "%s for entry %s",
                     notComponent, completeFilter, entry.getDN());
@@ -2519,7 +2522,7 @@
             case UNDEFINED:
               if (debugEnabled())
               {
-                debugInfo(
+                TRACER.debugInfo(
                   "Undefined result for NOT component %s in filter " +
                   "%s for entry %s",
                   notComponent, completeFilter, entry.getDN());
@@ -2570,7 +2573,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning FALSE for equality component %s in " +
                 "filter %s because entry %s didn't have attribute " +
                 "type %s",
@@ -2588,7 +2591,7 @@
           {
             if (debugEnabled())
             {
-              debugVerbose(
+              TRACER.debugVerbose(
                   "Returning TRUE for equality component %s in " +
                   "filter %s for entry %s",
                            this, completeFilter, entry.getDN());
@@ -2599,7 +2602,7 @@
 
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Returning FALSE for equality component %s in filter " +
               "%s because entry %s didn't have attribute type " +
               "%s with value %s",
@@ -2644,7 +2647,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning FALSE for substring component %s in " +
                 "filter %s because entry %s didn't have attribute " +
                 "type %s",
@@ -2666,7 +2669,7 @@
             case TRUE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Returning TRUE for substring component %s in " +
                     "filter %s for entry %s",
                              this, completeFilter, entry.getDN());
@@ -2677,7 +2680,7 @@
             case UNDEFINED:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Undefined result encountered for substring " +
                     "component %s in filter %s for entry %s",
                              this, completeFilter, entry.getDN());
@@ -2690,7 +2693,7 @@
 
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Returning %s for substring component %s in filter " +
               "%s for entry %s",
               result, this, completeFilter, entry.getDN());
@@ -2729,9 +2732,9 @@
         {
           if (debugEnabled())
           {
-            debugVerbose("Returning FALSE for greater-or-equal " +
-                "component %s in filter %s because entry %s didn't " +
-                "have attribute type %s",
+            TRACER.debugVerbose("Returning FALSE for " +
+                "greater-or-equal component %s in filter %s " +
+                "because entry %s didn't have attribute type %s",
                          this, completeFilter, entry.getDN(),
                          attributeType.getNameOrOID());
           }
@@ -2748,7 +2751,7 @@
             case TRUE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Returning TRUE for greater-or-equal component " +
                     "%s in filter %s for entry %s",
                              this, completeFilter, entry.getDN());
@@ -2759,7 +2762,7 @@
             case UNDEFINED:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Undefined result encountered for " +
                     "greater-or-equal component %s in filter %s " +
                     "for entry %s", this, completeFilter,
@@ -2773,7 +2776,7 @@
 
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Returning %s for greater-or-equal component %s in " +
               "filter %s for entry %s",
                        result, this, completeFilter, entry.getDN());
@@ -2813,7 +2816,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning FALSE for less-or-equal component %s in " +
                 "filter %s because entry %s didn't have attribute " +
                 "type %s", this, completeFilter, entry.getDN(),
@@ -2832,7 +2835,7 @@
             case TRUE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Returning TRUE for less-or-equal component %s " +
                     "in filter %s for entry %s",
                              this, completeFilter, entry.getDN());
@@ -2843,7 +2846,7 @@
             case UNDEFINED:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Undefined result encountered for " +
                         "less-or-equal component %s in filter %s " +
                         "for entry %s",
@@ -2857,7 +2860,7 @@
 
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Returning %s for less-or-equal component %s in " +
               "filter %s for entry %s",
                        result, this, completeFilter, entry.getDN());
@@ -2885,7 +2888,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning TRUE for presence component %s in " +
                 "filter %s for entry %s",
                 this, completeFilter, entry.getDN());
@@ -2896,7 +2899,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning FALSE for presence component %s in " +
                 "filter %s for entry %s",
                 this, completeFilter, entry.getDN());
@@ -2937,7 +2940,7 @@
         {
           if (debugEnabled())
           {
-            debugVerbose(
+            TRACER.debugVerbose(
                 "Returning FALSE for approximate component %s in " +
                 "filter %s because entry %s didn't have attribute " +
                 "type %s", this, completeFilter, entry.getDN(),
@@ -2956,7 +2959,7 @@
             case TRUE:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                    "Returning TRUE for approximate component %s in " +
                    "filter %s for entry %s",
                    this, completeFilter, entry.getDN());
@@ -2967,7 +2970,7 @@
             case UNDEFINED:
               if (debugEnabled())
               {
-                debugVerbose(
+                TRACER.debugVerbose(
                     "Undefined result encountered for approximate " +
                     "component %s in filter %s for entry %s",
                              this, completeFilter, entry.getDN());
@@ -2980,7 +2983,7 @@
 
         if (debugEnabled())
         {
-          debugVerbose(
+          TRACER.debugVerbose(
               "Returning %s for approximate component %s in filter " +
               "%s for entry %s",
               result, this, completeFilter, entry.getDN());
@@ -3055,7 +3058,7 @@
       {
         if (debugEnabled())
         {
-          debugInfo(
+          TRACER.debugInfo(
               "Unknown matching rule %s defined in extensibleMatch " +
               "component of filter %s -- returning undefined.",
                     matchingRuleID, this);
@@ -3082,7 +3085,7 @@
         {
           if (debugEnabled())
           {
-            debugInfo(
+            TRACER.debugInfo(
              "Attribute type %s does not have an equality matching " +
              "rule -- returning undefined.",
              attributeType.getNameOrOID());
@@ -3106,7 +3109,7 @@
         {
           if (debugEnabled())
           {
-            debugInfo(
+            TRACER.debugInfo(
                 "Attribute type %s is not allowed for use with " +
                 "matching rule %s because of matching rule use " +
                 "definition %s", attributeType.getNameOrOID(),
@@ -3129,7 +3132,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       // We can't normalize the assertion value, so the result must be
@@ -3182,7 +3185,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               // We couldn't normalize one of the values.  If we don't
@@ -3232,7 +3235,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               // We couldn't normalize one of the values.  If we don't
@@ -3275,7 +3278,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           // We couldn't normalize one of the values.  If we don't
@@ -3325,7 +3328,7 @@
             {
               if (debugEnabled())
               {
-                debugCaught(DebugLogLevel.ERROR, e);
+                TRACER.debugCaught(DebugLogLevel.ERROR, e);
               }
 
               // We couldn't normalize one of the values.  If we don't
@@ -3389,7 +3392,7 @@
           {
             if (debugEnabled())
             {
-              debugCaught(DebugLogLevel.ERROR, e);
+              TRACER.debugCaught(DebugLogLevel.ERROR, e);
             }
 
             // We couldn't normalize one of the values.  If we don't
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/SortKey.java b/opendj-sdk/opends/src/server/org/opends/server/types/SortKey.java
index 342449b..9d545bb 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/SortKey.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/SortKey.java
@@ -35,6 +35,7 @@
 import static org.opends.server.util.StaticUtils.*;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 
 
 
@@ -48,6 +49,11 @@
  */
 public class SortKey
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for this sort key.
   private AttributeType attributeType;
 
@@ -195,7 +201,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         return 0;
@@ -222,7 +228,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         return 0;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/VirtualAttributeRule.java b/opendj-sdk/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
index 1344853..5f39881 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/VirtualAttributeRule.java
@@ -38,6 +38,7 @@
 import org.opends.server.core.DirectoryServer;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.util.Validator.*;
 
 
@@ -53,6 +54,11 @@
  */
 public class VirtualAttributeRule
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The attribute type for which the values should be generated.
   private final AttributeType attributeType;
 
@@ -275,7 +281,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -307,7 +313,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java b/opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java
index 627bb1a..b24c84c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java
@@ -47,8 +47,8 @@
 
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
@@ -61,7 +61,10 @@
  */
 public class EMailMessage
 {
-
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
 
 
   // The addresses of the recipients to whom this message should be sent.
@@ -357,7 +360,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, me);
+          TRACER.debugCaught(DebugLogLevel.ERROR, me);
         }
 
         int msgID = MSGID_EMAILMSG_INVALID_SENDER_ADDRESS;
@@ -383,7 +386,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, me);
+            TRACER.debugCaught(DebugLogLevel.ERROR, me);
           }
 
           int msgID = MSGID_EMAILMSG_INVALID_RECIPIENT_ADDRESS;
@@ -429,7 +432,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, sfe);
+          TRACER.debugCaught(DebugLogLevel.ERROR, sfe);
         }
 
         // We'll ignore this and hope that another server is available.  If not,
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
index 2c91cc5..71ec8f0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
@@ -28,11 +28,8 @@
 
 
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugVerbose;
-import static org.opends.server.loggers.debug.DebugLogger.debugInfo;
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugProtocolElement;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.UtilityMessages.*;
@@ -80,6 +77,11 @@
  */
 public final class LDIFReader
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // The reader that will be used to read the data.
   private BufferedReader reader;
 
@@ -216,8 +218,8 @@
       {
         if (debugEnabled())
         {
-          debugInfo("Skipping entry %s because the DN is not one that should " +
-              "be included based on the include and exclude branches.",
+          TRACER.debugInfo("Skipping entry %s because the DN is not one that " +
+              "should be included based on the include and exclude branches.",
                     entryDN);
         }
         entriesRead++;
@@ -254,7 +256,7 @@
       // import.
       Entry entry =  new Entry(entryDN, objectClasses, userAttributes,
                                operationalAttributes);
-      debugProtocolElement(DebugLogLevel.VERBOSE, entry);
+      TRACER.debugProtocolElement(DebugLogLevel.VERBOSE, entry);
 
       try
       {
@@ -262,9 +264,9 @@
         {
           if (debugEnabled())
           {
-            debugInfo("Skipping entry %s because the DN is not one that " +
-                "should be included based on the include and exclude filters.",
-                      entryDN);
+            TRACER.debugInfo("Skipping entry %s because the DN is not one " +
+                "that should be included based on the include and exclude " +
+                "filters.", entryDN);
           }
           entriesIgnored++;
           continue;
@@ -274,7 +276,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIF_COULD_NOT_EVALUATE_FILTERS_FOR_IMPORT;
@@ -591,7 +593,7 @@
         // The value did not have a valid base64-encoding.
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIF_COULD_NOT_BASE64_DECODE_DN;
@@ -611,7 +613,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_LDIF_INVALID_DN;
@@ -626,7 +628,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIF_INVALID_DN;
@@ -658,7 +660,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
 
         int    msgID   = MSGID_LDIF_INVALID_DN;
@@ -673,7 +675,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIF_INVALID_DN;
@@ -768,7 +770,7 @@
         // The value did not have a valid base64-encoding.
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
 
         int    msgID   = MSGID_LDIF_COULD_NOT_BASE64_DECODE_DN;
@@ -846,8 +848,8 @@
       {
         if (debugEnabled())
         {
-          debugVerbose("Skipping objectclass %s for entry %s due to the " +
-              "import configuration.", value, entryDN);
+          TRACER.debugVerbose("Skipping objectclass %s for entry %s due to " +
+              "the import configuration.", value, entryDN);
         }
         return;
       }
@@ -885,8 +887,8 @@
       {
         if (debugEnabled())
         {
-          debugVerbose("Skipping attribute %s for entry %s due to the import " +
-              "configuration.", attrName, entryDN);
+          TRACER.debugVerbose("Skipping attribute %s for entry %s due to the " +
+              "import configuration.", attrName, entryDN);
         }
         return;
       }
@@ -1103,7 +1105,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -1250,7 +1252,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, de);
+        TRACER.debugCaught(DebugLogLevel.ERROR, de);
       }
       int    msgID   = MSGID_LDIF_INVALID_DN;
       String message = getMessage(msgID, lineNumber, line.toString(),
@@ -1260,7 +1262,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
       int    msgID   = MSGID_LDIF_INVALID_DN;
       String message = getMessage(msgID, lineNumber, line.toString(),
@@ -1312,7 +1314,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, de);
+          TRACER.debugCaught(DebugLogLevel.ERROR, de);
         }
         int    msgID   = MSGID_LDIF_INVALID_DN;
         String message = getMessage(msgID, lineNumber, line.toString(),
@@ -1322,7 +1324,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         int    msgID   = MSGID_LDIF_INVALID_DN;
         String message = getMessage(msgID, lineNumber, line.toString(),
@@ -1598,7 +1600,7 @@
           // The value did not have a valid base64-encoding.
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_LDIF_COULD_NOT_BASE64_DECODE_ATTR;
@@ -1629,7 +1631,7 @@
           // The URL was malformed or had an invalid protocol.
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int    msgID   = MSGID_LDIF_INVALID_URL;
@@ -1663,7 +1665,7 @@
           // reason.
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
 
           int msgID = MSGID_LDIF_URL_IO_ERROR;
@@ -1743,7 +1745,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java
index f504e5a..f053e5b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java
@@ -44,8 +44,8 @@
 import org.opends.server.types.Modification;
 import org.opends.server.types.RDN;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.util.StaticUtils.*;
 import static org.opends.server.util.Validator.*;
@@ -58,6 +58,11 @@
  */
 public final class LDIFWriter
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   // FIXME -- Add support for generating a hash when writing the data.
   // FIXME -- Add support for signing the hash that is generated.
 
@@ -657,7 +662,7 @@
         // This should never happen.
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
         buffer.append(new String(valueBytes));
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java b/opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java
index 3bbe140..d882014 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java
@@ -30,8 +30,8 @@
 
 import java.io.OutputStream;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 
 
@@ -43,6 +43,10 @@
 public final class MultiOutputStream
        extends OutputStream
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
 
 
 
@@ -83,7 +87,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -106,7 +110,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -132,7 +136,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -160,7 +164,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
@@ -185,7 +189,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java b/opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java
index b45bbe7..0a9a3f8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java
@@ -55,8 +55,8 @@
 import org.opends.server.types.ObjectClass;
 import org.opends.server.types.RDN;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.messages.UtilityMessages.*;
@@ -74,6 +74,11 @@
 public final class StaticUtils
 {
   /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
+  /**
    * Private constructor to prevent instantiation.
    */
   private StaticUtils() {
@@ -121,7 +126,7 @@
     {
       if (debugEnabled())
       {
-        debugCaught(DebugLogLevel.ERROR, e);
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
       }
 
       try
@@ -132,7 +137,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e2);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e2);
         }
 
         return s.getBytes();
@@ -2346,7 +2351,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         // If this happens, then we have no choice but to forcefully terminate
@@ -2359,7 +2364,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -2397,7 +2402,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
       }
@@ -2410,7 +2415,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, ie);
+          TRACER.debugCaught(DebugLogLevel.ERROR, ie);
         }
 
         // If this happens, then we have no choice but to forcefully terminate
@@ -2423,7 +2428,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
         }
 
@@ -2755,7 +2760,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           buffer.append(new String(b, i, (length - i)).toLowerCase());
         }
@@ -3056,7 +3061,7 @@
         {
           if (debugEnabled())
           {
-            debugCaught(DebugLogLevel.ERROR, e);
+            TRACER.debugCaught(DebugLogLevel.ERROR, e);
           }
           buffer.append(new String(b, i, (length - i)).toUpperCase());
         }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java b/opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java
index da9d2ea..d660352 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java
@@ -39,8 +39,8 @@
 
 import org.opends.server.api.DirectoryThread;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.DebugLogLevel;
 import static org.opends.server.util.ServerConstants.*;
 
@@ -54,6 +54,10 @@
 public final class TimeThread
        extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
 
 
 
@@ -172,7 +176,7 @@
       {
         if (debugEnabled())
         {
-          debugCaught(DebugLogLevel.ERROR, e);
+          TRACER.debugCaught(DebugLogLevel.ERROR, e);
         }
       }
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/Validator.java b/opendj-sdk/opends/src/server/org/opends/server/util/Validator.java
index a12c662..e9b1ee4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/Validator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/Validator.java
@@ -26,8 +26,8 @@
  */
 package org.opends.server.util;
 
-import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
-import static org.opends.server.loggers.debug.DebugLogger.debugError;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.ErrorLogCategory;
 import org.opends.server.types.ErrorLogSeverity;
 import org.opends.server.messages.UtilityMessages;
@@ -86,6 +86,11 @@
  * </ul>
  */
 public class Validator {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   /** This static final variable theoretically allows us to compile out all of
    *  these checks.  Since all of the code below is guarded with this check,
    *  the compiler should eliminate it if ENABLE_CHECKS is false.
@@ -388,7 +393,7 @@
     // Log to the debug log.
     if (debugEnabled())
     {
-      debugError(messageWithStack);
+      TRACER.debugError(messageWithStack);
     }
 
     // Log to the error log.
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
index 046cbec..cc370ea 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
@@ -28,8 +28,8 @@
 
 import static org.opends.server.config.ConfigConstants.*;
 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.debugInfo;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.loggers.debug.DebugTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
@@ -95,6 +95,11 @@
 
 public class InitOnLineTest extends ReplicationTestCase
 {
+  /**
+   * The tracer object for the debug logger
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private static final int WINDOW_SIZE = 10;
   private static final int CHANGELOG_QUEUE_SIZE = 100;
 
@@ -131,7 +136,7 @@
         "InitOnLineTests/" + s, 1);
     if (debugEnabled())
     {
-      debugInfo(s);
+      TRACER.debugInfo(s);
     }
   }
   protected void log(String message, Exception e)

--
Gitblit v1.10.0