F.12 Guidelines for Enabling Workflow Logging

The Workflow Engine log level is controlled by the -Dcom.microfocus.workflow.logging.level property typically set in the setenv.sh file in the /TOMCAT_INSTALLED_HOME/bin/ directory. For example, /opt/netiq/idm/apps/tomcat/bin/setenv.sh on Linux. The value of -Dcom.microfocus.workflow.logging.level=ALL controls the amount of information that the Workflow Engine logs. By default, the logging is set to INFO. Logs are saved in the catalina.out file. You can set other levels when you are troubleshooting for more verbose messages. After setting the log level, restart Tomcat. For example, restart Tomcat by performing the following command:

systemctl restart netiq-tomcat.service

All loggers specific to the Workflow Engine are defined in the workflow_logging.xml file located in the Identity Applications installed location. You can set the severity level for each logger at any level in the hierarchy by editing this file. You also need to manually add the workflow packages in workflow_logging.xml file to enable workflow logging.

To add a workflow package:

  1. Navigate to workflow_logging.xml file location.

    Linux: /opt/netiq/idm/apps/tomcat/conf/workflow_logging.xml

    Windows: C:\NetIQ\idm\apps\tomcat\conf\workflow_logging.xml

  2. Open the file in a text editor, add the required workflow package and set the level for log messages. For example:

    <logger name="com.novell.soa.af.impl.timers" level="DEBUG" additivity="true">
            </logger>
  3. Save the file and issue a restart to Tomcat.

    Similarly, add other workflow packages in the workflow_logging.xml file. You cannot add them from dashboard in this release.

The Workflow Engine generates events in the CEF standard format and publishes them to the configured audit server. The package level log details are specified in the workflow_logging.xml file. Alternatively, you can set these values in the ism-configuration.properties file.

If a parameter value is specified as ${com.netiq.ism.audit.cef.host:localhost} in the workflow_logging.xml file, the value for the parameter specified in the ism-configuration.properties file takes precedence. Otherwise, the default value specified after the ":" is considered. If the value is directly specified (hardcoded) in the workflow_logging.xml file, the Workflow Engine does not check the value (even if it is specified) in the ism-configuration.properties file. For example, the value will look like this in the workflow_logging.xml file: <param name="SyslogHost" value="localhost" />.

You can configure the Workflow Engine log level in one of the following ways:

  • At global level: Applies to all loggers and packages in the Workflow Engine

  • At package level: Applies to a particular package

The log level selected for a particular package takes precedence by default. For example, if the log level for a package, com.novell.soa.af.impl.timers is set to DEBUG, and the log level for the Workflow Engine is INFO, then the application logs debugging information for the selected package. Other packages and loggers are logged at the INFO log level.

However, you can modify the default behavior by enabling the Workflow Engine log level to take precedence over the package log level. Add the com.microfocus.workflow.default.logging=true property in the ism-configuration.properties file. As a result, the Workflow Engine log level specified in the setenv.sh file takes precedence, and the package log level is ignored.

NOTE:The com.microfocus.workflow.default.logging property is available in Identity Manager 4.8.8 and later. In earlier versions, the log level specified in the setenv.sh file supersedes the log level specified for individual packages. For example, if you wanted to collect debugging information for a particular package, you had to set the entire Workflow Engine to the DEBUG logging level instead of setting up the log level only for that package. As a result, a substantial amount of debug information was generated from all loggers.