Installation and Administration

Logs Analysis

Updated: October 16, 2020

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 (for Tomcat),
  • $NUXEO_HOME/server/default/conf/jboss-log4j.xml (for Nuxeo 5.2+ with JBoss).

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 informations:

  • 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 nuxeo.log.dir parameter. By default, Nuxeo writes seven 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/ 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 if someone already asked about it. You can also google 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.
ERROR [org.nuxeo.template.service.TemplateProcessorComponent] detach after removeFacet, ck=... Not an error. It can be ignored ()
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, 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.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:jodconverter-core) Restarting OOo after code 81 ... See jodconverter issue 84.
WARN (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:jboss-seam) no permission store available - please install a PermissionStore with the name '' 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.