Nexus Repository 3 Logger Reference

<TABLE OF CONTENTS>

Repository manager default logger levels are intended to be verbose enough to help diagnose problems should they be encountered and quiet enough to not create overly large log files.

Increasing default log output verbosity can be used when more information needs to be gathered about a problem or activity. In some cases making a logger less verbose is justified to avoid spamming the application log with noisy messages.

This article serves as a reference to some of the loggers commonly adjusted by feature area. This is not a complete list and not all loggers are available in all versions of repository manager.

Postgresql/H2 Database Queries

Database Access Objects perform the actual SQL queries against the database. These logger names always end with "DAO". Depending on the feature area you want to debug, enabling DEBUG level for these loggers can help expose the actual database queries being made. Enabling DEBUG for these in production is highly cautioned. In some cases sensitive information may be exposed or the output may be very verbose. Test first.

Nexus Repo code can be grepped for a listing of all these DAO classes. For example this command against ~3.44.0 source code shows 161 individual loggers:

find . -name '*DAO.java' | rg --invert-match 'src/test|example' | rg '.*/((com|org).*)\.java' -r '$1' | sed 's/\//./g' | wc -l
161

The sample list is output below:

> find . -name '*DAO.java' | rg --invert-match 'src/test|example' | rg '.*/((com|org).*)\.java' -r '$1' | sed 's/\//./g'
com.sonatype.nexus.ssl.plugin.internal.keystore.KeyStoreDAO
org.sonatype.nexus.script.plugin.internal.ScriptDAO
org.sonatype.nexus.content.raw.internal.browse.RawBrowseNodeDAO
org.sonatype.nexus.content.raw.internal.store.RawAssetDAO
org.sonatype.nexus.content.raw.internal.store.RawComponentDAO
org.sonatype.nexus.content.raw.internal.store.RawAssetBlobDAO
org.sonatype.nexus.content.raw.internal.store.RawContentRepositoryDAO
org.sonatype.nexus.content.maven.internal.browse.Maven2BrowseNodeDAO
org.sonatype.nexus.content.maven.store.Maven2ContentRepositoryDAO
org.sonatype.nexus.content.maven.store.Maven2AssetBlobDAO
org.sonatype.nexus.content.maven.store.Maven2ComponentDAO
org.sonatype.nexus.content.maven.store.Maven2AssetDAO
org.sonatype.nexus.repository.apt.datastore.internal.browse.AptBrowseNodeDAO
org.sonatype.nexus.repository.apt.datastore.internal.store.AptAssetBlobDAO
org.sonatype.nexus.repository.apt.datastore.internal.store.AptComponentDAO
org.sonatype.nexus.repository.apt.datastore.internal.store.AptAssetDAO
org.sonatype.nexus.repository.apt.datastore.internal.store.AptContentRepositoryDAO
org.sonatype.nexus.cleanup.internal.storage.CleanupPolicyDAO
org.apache.shiro.nexus.NexusSessionDAO
org.apache.shiro.nexus.NexusSubjectDAO
org.sonatype.nexus.internal.jwt.datastore.JwtSecretDAO
org.sonatype.nexus.internal.security.anonymous.AnonymousConfigurationDAO
org.sonatype.nexus.internal.security.model.CPrivilegeDAO
org.sonatype.nexus.internal.security.model.CUserRoleMappingDAO
org.sonatype.nexus.internal.security.model.CRoleDAO
org.sonatype.nexus.internal.security.model.CUserDAO
org.sonatype.nexus.internal.security.realm.RealmConfigurationDAO
org.sonatype.nexus.internal.log.overrides.datastore.LoggingOverridesDAO
org.sonatype.nexus.internal.node.datastore.NodeIdDAO
org.sonatype.nexus.internal.node.DeploymentIdDAO
org.sonatype.nexus.quartz.internal.QuartzDAO
org.sonatype.nexus.repository.config.ConfigurationDAO
org.sonatype.nexus.repository.internal.blobstore.BlobStoreConfigurationDAO
org.sonatype.nexus.repository.routing.internal.RoutingRuleDAO
org.sonatype.nexus.repository.content.kv.KeyValueDAO
org.sonatype.nexus.repository.content.blobstore.metrics.BlobStoreMetricsDAO
org.sonatype.nexus.repository.content.search.table.SearchTableDAO
org.sonatype.nexus.repository.content.browse.store.BrowseNodeDAO
org.sonatype.nexus.repository.content.store.AssetDAO
org.sonatype.nexus.repository.content.store.ContentRepositoryDAO
org.sonatype.nexus.repository.content.store.AssetBlobDAO
org.sonatype.nexus.repository.content.store.ComponentDAO
org.sonatype.nexus.blobstore.file.store.internal.SoftDeletedBlobsDAO
org.sonatype.nexus.internal.selector.SelectorConfigurationDAO
org.sonatype.nexus.internal.httpclient.HttpClientConfigurationDAO
org.sonatype.nexus.internal.security.apikey.ApiKeyDAO
org.sonatype.nexus.internal.capability.storage.CapabilityStorageItemDAO
org.sonatype.nexus.internal.email.EmailConfigurationDAO
org.sonatype.nexus.ldap.internal.connector.dao.DefaultLdapGroupDAO
org.sonatype.nexus.ldap.internal.connector.dao.DefaultLdapUserDAO
org.sonatype.nexus.ldap.internal.connector.dao.LdapGroupDAO
org.sonatype.nexus.ldap.internal.connector.dao.LdapUserDAO
org.sonatype.nexus.ldap.persist.internal.LdapConfigurationDAO
org.sonatype.nexus.repository.gitlfs.datastore.internal.browse.GitLfsBrowseNodeDAO
org.sonatype.nexus.repository.gitlfs.datastore.store.GitLfsAssetDAO
org.sonatype.nexus.repository.gitlfs.datastore.store.GitLfsContentRepositoryDAO
org.sonatype.nexus.repository.gitlfs.datastore.store.GitLfsAssetBlobDAO
org.sonatype.nexus.repository.gitlfs.datastore.store.GitLfsComponentDAO
com.sonatype.nexus.saml.persist.internal.SamlConfigurationDAO
com.sonatype.nexus.saml.persist.internal.SamlUserDAO
com.sonatype.repository.conan.internal.datastore.browse.ConanBrowseNodeDAO
com.sonatype.nexus.repository.conan.datastore.store.ConanComponentDAO
com.sonatype.nexus.repository.conan.datastore.store.ConanAssetBlobDAO
com.sonatype.nexus.repository.conan.datastore.store.ConanAssetDAO
com.sonatype.nexus.repository.conan.datastore.store.ConanContentRepositoryDAO
com.sonatype.nexus.repository.nuget.datastore.store.NugetComponentDAO
com.sonatype.nexus.repository.nuget.datastore.store.NugetAssetBlobDAO
com.sonatype.nexus.repository.nuget.datastore.store.NugetAssetDAO
com.sonatype.nexus.repository.nuget.datastore.store.NugetBrowseNodeDAO
com.sonatype.nexus.repository.nuget.datastore.store.NugetContentRepositoryDAO
com.sonatype.nexus.repository.r.datastore.internal.browse.RBrowseNodeDAO
com.sonatype.nexus.repository.r.datastore.internal.store.RComponentDAO
com.sonatype.nexus.repository.r.datastore.internal.store.RAssetBlobDAO
com.sonatype.nexus.repository.r.datastore.internal.store.RAssetDAO
com.sonatype.nexus.repository.r.datastore.internal.store.RContentRepositoryDAO
com.sonatype.nexus.repository.p2.datastore.internal.store.P2AssetDAO
com.sonatype.nexus.repository.p2.datastore.internal.store.P2ComponentDAO
com.sonatype.nexus.repository.p2.datastore.internal.store.P2AssetBlobDAO
com.sonatype.nexus.repository.p2.datastore.internal.store.P2ContentRepositoryDAO
com.sonatype.nexus.repository.p2.datastore.internal.store.P2BrowseNodeDAO
com.sonatype.nexus.plugins.healthcheck.service.impl.RepositoryHealthCheckConfigurationDAO
com.sonatype.nexus.clm.internal.FirewallIgnorePatternsDAO
com.sonatype.nexus.pro.systemchecks.heartbeat.internal.NodeHeartbeatDAO
com.sonatype.nexus.vulnerability.internal.datastore.Log4JVisualizerConfigurationDAO
com.sonatype.nexus.vulnerability.internal.datastore.DownloadCountDAO
com.sonatype.nexus.replication.db.datastore.ReplicationEventDAO
com.sonatype.nexus.replication.db.datastore.ReplicationConnectionDAO
com.sonatype.repository.helm.datastore.internal.browse.HelmBrowseNodeDAO
com.sonatype.repository.helm.datastore.internal.store.HelmContentRepositoryDAO
com.sonatype.repository.helm.datastore.internal.store.HelmComponentDAO
com.sonatype.repository.helm.datastore.internal.store.HelmAssetBlobDAO
com.sonatype.repository.helm.datastore.internal.store.HelmAssetDAO
org.sonatype.nexus.repository.rubygems.datastore.internal.browse.RubygemsBrowseNodeDAO
org.sonatype.nexus.repository.rubygems.datastore.internal.store.RubygemsAssetDAO
org.sonatype.nexus.repository.rubygems.datastore.internal.store.RubygemsContentRepositoryDAO
org.sonatype.nexus.repository.rubygems.datastore.internal.store.RubygemsComponentDAO
org.sonatype.nexus.repository.rubygems.datastore.internal.store.RubygemsAssetBlobDAO
com.sonatype.nexus.repository.pypi.datastore.internal.browse.PypiBrowseNodeDAO
com.sonatype.nexus.repository.pypi.datastore.internal.store.PypiAssetDAO
com.sonatype.nexus.repository.pypi.datastore.internal.store.PypiContentRepositoryDAO
com.sonatype.nexus.repository.pypi.datastore.internal.store.PypiAssetBlobDAO
com.sonatype.nexus.repository.pypi.datastore.internal.store.PypiComponentDAO
com.sonatype.nexus.usertoken.plugin.store.internal.UserTokenRecordDAO
com.sonatype.nexus.repository.conda.datastore.internal.browse.CondaBrowseNodeDAO
com.sonatype.nexus.repository.conda.datastore.internal.store.CondaAssetBlobDAO
com.sonatype.nexus.repository.conda.datastore.internal.store.CondaComponentDAO
com.sonatype.nexus.repository.conda.datastore.internal.store.CondaContentRepositoryDAO
com.sonatype.nexus.repository.conda.datastore.internal.store.CondaAssetDAO
com.sonatype.nexus.repository.content.npm.internal.store.NpmAssetBlobDAO
com.sonatype.nexus.repository.content.npm.internal.store.NpmComponentDAO
com.sonatype.nexus.repository.content.npm.internal.store.NpmContentRepositoryDAO
com.sonatype.nexus.repository.content.npm.internal.store.NpmAssetDAO
com.sonatype.nexus.repository.content.npm.browse.NpmBrowseNodeDAO
com.sonatype.nexus.repository.golang.datastore.internal.browse.GoBrowseNodeDAO
com.sonatype.nexus.repository.golang.datastore.internal.store.GoContentRepositoryDAO
com.sonatype.nexus.repository.golang.datastore.internal.store.GoComponentDAO
com.sonatype.nexus.repository.golang.datastore.internal.store.GoAssetBlobDAO
com.sonatype.nexus.repository.golang.datastore.internal.store.GoAssetDAO
com.sonatype.nexus.repository.cocoapods.datastore.internal.browse.CocoapodsBrowseNodeDAO
com.sonatype.nexus.repository.cocoapods.datastore.internal.store.CocoapodsComponentDAO
com.sonatype.nexus.repository.cocoapods.datastore.internal.store.CocoapodsAssetBlobDAO
com.sonatype.nexus.repository.cocoapods.datastore.internal.store.CocoapodsContentRepositoryDAO
com.sonatype.nexus.repository.cocoapods.datastore.internal.store.CocoapodsAssetDAO
com.sonatype.nexus.tags.datastore.p2.P2ComponentTagDAO
com.sonatype.nexus.tags.datastore.pypi.PypiComponentTagDAO
com.sonatype.nexus.tags.datastore.docker.DockerComponentTagDAO
com.sonatype.nexus.tags.datastore.conda.CondaComponentTagDAO
com.sonatype.nexus.tags.datastore.golang.GoComponentTagDAO
com.sonatype.nexus.tags.datastore.maven.Maven2ComponentTagDAO
com.sonatype.nexus.tags.datastore.r.RComponentTagDAO
com.sonatype.nexus.tags.datastore.rubygems.RubygemsComponentTagDAO
com.sonatype.nexus.tags.datastore.ComponentTagDAO
com.sonatype.nexus.tags.datastore.yum.YumComponentTagDAO
com.sonatype.nexus.tags.datastore.TagDAO
com.sonatype.nexus.tags.datastore.apt.AptComponentTagDAO
com.sonatype.nexus.tags.datastore.nuget.NugetComponentTagDAO
com.sonatype.nexus.tags.datastore.conan.ConanComponentTagDAO
com.sonatype.nexus.tags.datastore.gitlfs.GitLfsComponentTagDAO
com.sonatype.nexus.tags.datastore.helm.HelmComponentTagDAO
com.sonatype.nexus.tags.datastore.raw.RawComponentTagDAO
com.sonatype.nexus.tags.datastore.cocoapods.CocoapodsComponentTagDAO
com.sonatype.nexus.tags.datastore.npm.NpmComponentTagDAO
org.sonatype.nexus.repository.docker.internal.datastore.browse.DockerBrowseNodeDAO
org.sonatype.nexus.repository.docker.internal.datastore.store.DockerContentRepositoryDAO
org.sonatype.nexus.repository.docker.internal.datastore.store.DockerComponentDAO
org.sonatype.nexus.repository.docker.internal.datastore.store.DockerAssetDAO
org.sonatype.nexus.repository.docker.internal.datastore.store.DockerAssetBlobDAO
org.sonatype.nexus.repository.docker.internal.datastore.store.DockerForeignLayersDAO
org.sonatype.nexus.repository.yum.datastore.internal.browse.YumBrowseNodeDAO
org.sonatype.nexus.repository.yum.datastore.internal.store.YumContentRepositoryDAO
org.sonatype.nexus.repository.yum.datastore.internal.store.YumComponentDAO
org.sonatype.nexus.repository.yum.datastore.internal.store.YumAssetBlobDAO
org.sonatype.nexus.repository.yum.datastore.internal.store.YumAssetDAO
com.sonatype.nexus.distributed.internal.wonderland.DistributedAuthTicketCacheDAO
com.sonatype.nexus.distributed.internal.cooperation.store.CooperationDAO
com.sonatype.nexus.distributed.internal.sqlcache.store.CacheDAO
com.sonatype.nexus.distributed.internal.supportzip.store.SupportZipInfoDAO
com.sonatype.nexus.distributed.internal.event.store.DistributedEventDAO
com.sonatype.nexus.distributed.internal.clock.ClockDAO
com.sonatype.nexus.blobstore.azure.internal.db.datastore.DeletedBlobDAO
com.sonatype.nexus.repository.move.internal.storage.ChangeRepositoryBlobstoreDAO

LDAP

Diagnose LDAP Queries and LDAP Server Connection Stack Traces

  • set logger org.sonatype.nexus.ldap to DEBUG

Repository Formats

NuGet

  • set com.sonatype.nexus.repository.nuget to DEBUG

Webhooks

Diagnose Outbound Webhook Payloads

  • set org.sonatype.nexus.internal.webhooks to DEBUG

Example log entries:

2016-12-14 17:09:43,902+0000 DEBUG [event-1-thread-2] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Sending webhook request: WebhookRequest{id='9d80527e-8f7d-455a-a86b-191e9ac7ab9e', webhook=rm:repository:component, payload=org.sonatype.nexus.repository.webhooks.RepositoryComponentWebhook$RepositoryComponentWebhookPayload@2a89735b, url=http://requestb.in/abcd}
2016-12-14 17:09:44,420+0000 DEBUG [event-1-thread-2] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Sending POST request: POST http://requestb.in/abcd HTTP/1.1
2016-12-14 17:09:44,736+0000 DEBUG [event-1-thread-3] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Sending webhook request: WebhookRequest{id='29608664-b00b-4e1a-af3d-d0ced495fd57', webhook=rm:repository:component, payload=org.sonatype.nexus.repository.webhooks.RepositoryComponentWebhook$RepositoryComponentWebhookPayload@9ef9b8, url=http://requestb.in/abcd}
2016-12-14 17:09:44,760+0000 DEBUG [event-1-thread-3] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Sending POST request: POST http://requestb.in/abcd HTTP/1.1
2016-12-14 17:09:44,765+0000 DEBUG [event-1-thread-2] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Response status: HTTP/1.1 200 OK
2016-12-14 17:09:44,996+0000 DEBUG [event-1-thread-3] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Response status: HTTP/1.1 200 OK

If there is an error in posting to the webhook url, then you will see an error like the following:

2016-12-14 16:40:34,567+0000 ERROR [event-1-thread-16] admin org.sonatype.nexus.internal.webhooks.WebhookServiceImpl - Failed to send webhook request: WebhookRequest{id='071b719e-683d-4fb4-a031-12e292ed4ec0', webhook=rm:repository:component, payload=org.sonatype.nexus.repository.webhooks.RepositoryComponentWebhook$RepositoryComponentWebhookPayload@76beefa6, url=http://requestb.in/abcd}
org.apache.http.client.HttpResponseException: Not found

UI

Diagnose UI Search Inbound JSON Payloads

  • set org.sonatype.nexus.coreui.SearchComponent to DEBUG

SAML

Log SAML Related Activity

  • set com.sonatype.nexus.saml  to DEBUG
  • set org.keycloak.saml to DEBUG

 

Have more questions? Submit a request

0 Comments

Article is closed for comments.