Installation and Administration

Logs Analysis

Updated: July 17, 2023

Logging Configuration

Nuxeo logging is compliant with common Java logging frameworks Log4JSLF4J and JUL.

Logging in Nuxeo is configured through a Log4J XML file: $NUXEO_HOME/lib/log4j.xml

Editing that file, you can set the logging rules (log level per file and component, files rotation, ...).

Log4J log levels are: ERROR, WARN, INFO, DEBUG and TRACE.

You can increase or decrease the logs for specific services. Here are some useful categories:

  • org.nuxeo.runtime.deployment.preprocessor.DeploymentPreprocessor logs the pre-processing order,

  • org.nuxeo.osgi.application.loader.FrameworkLoader writes the configuration summary,

  • org.nuxeo.runtime.osgi.OSGiRuntimeService provides the final startup summary.

Related pages:

Log Files

The log files location depends on the nuxeo.log.dir parameter. By default, Nuxeo generates the following log files (also available from the platform Admin tab and the Control Panel):

  • Launcher logs

    • nuxeoctl.log Logs activity from NuxeoCtl.
    • console.log Logs output written to the console (stdout).
  • Server logs

    • server.log Server logs.
    • nuxeo-error.log Gathers errors raised to the user.
    • stderr.log Gathers errors written to the console (stderr).
    • classloader.log Gathers class loading errors from Catalina.
    • tomcat.log Gathers Tomcat logs.

Tomcat Specific

The following information is for debug purpose, it may have impacts on performance and logging files size

$NUXEO_HOME/conf/logging.properties has no effect; you can safely remove it.

Because Tomcat uses java.util.logging of which Log4J is not aware, Tomcat logs (org.apache.catalina.*) have to be redirected to Apache Commons Logging (compliant with Log4J).

Nuxeo provides a bridge for that redirection (in org.nuxeo.common.logging.JavaUtilLoggingHelper) with a default threshold set at INFO level. You can customize it by adding into nuxeo.conf:

JAVA_OPTS=$JAVA_OPTS -Dorg.nuxeo.runtime.redirectJUL.threshold=CONFIG

But that redirection is only available after Nuxeo Framework initialization whereas most of the startup logs from org.apache.catalina happen before (when the redirection is not yet active).

Note also that FINER and FINEST logs will be ignored anyway.

Common Logs

Here are descriptions of the most common logs coming from Nuxeo or its third-parties. The list is not exhaustive but aims at helping to understand the most common logs you may encounter while using the Nuxeo Platform. If you don't find what you need here, you can check answers.nuxeo.com if someone already asked about it. You can also search the web about third parties logs if they are not in this list.

LevelSource MessageCause
  Cannot set databaseTransactionEnabled attribute to false for model publication, other models already exist with value true Not a problem. The databaseTransactionEnabled is a Jena issue.
  Oracle 11g is not yet fully supported; using 10g dialect Not a problem. Because not using the latest Hibernate version. It's not a problem either given the SQL generated by Nuxeo.
WARN org.hibernate.ejb.Ejb3Configuration (org.hibernate:hibernate-entitymanager) Overriding hibernate.transaction.factory_class is dangerous, this might break the EJB3 specification implementation Not a problem. Generated by Hibernate and can be ignored. This is voluntarily done and is under control.
WARN org.jboss.seam.core.Init (org.jboss.seam:jboss-seam) The built-in interceptor org.jboss.seam.persistence.EntityManagerProxyInterceptor is missing. This application may not function as expected Similar messages with: org.jboss.seam.bpm.BusinessProcessInterceptor, org.jboss.seam.core.BijectionInterceptor, org.jboss.seam.webservice.WSSecurityInterceptor, org.jboss.seam.security.SecurityInterceptor. Not a problem. Some unneeded built-in interceptors are removed for performance reasons.
WARN org.jboss.seam.Component (org.jboss.seam:jboss-seam) Component class should be serializable: org.jboss.seam.ui.facelet.mockHttpSession Third-party issue. Seam provides a non-serializable component and then warns about it. Even if we don't use it, it's still part of the default Seam JARs.
WARN org.nuxeo.ecm.core.search.api.client.querymodel.QueryModelService (org.nuxeo.ecm.platform:nuxeo-platform-search-api) Query models are deprecated as of Nuxeo 5.4 and will be removed for Nuxeo 6.0: the query model '...' should be upgraded to use content views Use of deprecated API. See Javadoc.
WARN org.nuxeo.ecm.webapp.pagination.ResultsProviderService (org.nuxeo.ecm.platform:nuxeo-platform-webapp-base) Result providers are deprecated as of Nuxeo 5.4 and will be removed for Nuxeo 6.0: the result provider '...' should be upgraded to use content views Use of deprecated API. See Javadoc.
WARN org.nuxeo.theme.styling.service.ThemeStylingServiceImpl (org.nuxeo.theme:nuxeo-theme-styling) Style unknown: helpers  
WARN org.artofsolving.jodconverter.office.OfficeProcess (org.artofsolving.jodconverter:jodconverter-core) Restarting OOo after code 81 ... See jodconverter issue 84.
WARN org.artofsolving.jodconverter.office.StreamGobbler (org.artofsolving.jodconverter:jodconverter-core) StreamGobbler: Fontconfig warning: "/usr/lib/libreoffice/share/fonts/truetype/fc_local.conf", line 13: Having multiple <family> in <alias> isn't supported and may not works as expected  
WARN org.jboss.seam.init.Initialization (org.jboss.seam:jboss-seam) namespace declared in components.xml does not resolve to a package:  
WARN org.jboss.seam.security.permission.PersistentPermissionResolver (org.jboss.seam:jboss-seam) no permission store available - please install a PermissionStore with the name 'org.jboss.seam.security.jpaPermissionStore' if persistent permissions are required.  
WARN org.nuxeo.ecm.core.api.TransactionalCoreSessionWrapper (org.nuxeo.ecm.core:nuxeo-core) Session invoked in a container without a transaction active: turn on debug logs for more information about the faulty call. See NXP-7170 upgrade notes.