The following sections describes the workflow logging environment, and provides an overview of the logging process.
The logging framework comprises of three main components: loggers, appenders, and layouts. These components work together to accomplish the following tasks:
Record messages based on message type and level.
Control how log messages are formatted and where they are reported at runtime.
A logger is a named entity. A logger object records messages for a specific subsystem or on the application components. An application can create multiple loggers, each with a unique name. Typically, an application creates a logger instance for each application class that will emit log messages. Logger names are case-sensitive, and follow the Java package dot notation naming convention.
All loggers specific to the workflow are defined in the workflow_logging.xml file. You can set the severity level for each logger at any level in the hierarchy by editing the workflow_logging.xml file. For more information, see Specifying the Severity Level for Commons Logging API Loggers.
The logging configuration file defines appenders to represent destinations for logging output. You can define multiple appenders. For example, an application might define one appender that sends log messages to standard output, and another appender that writes log messages to a file. Additionally, you can configure individual loggers to write to zero or more appenders. For example, you can configure the loggers to send all logging messages to a log file, but only Error level messages to standard output. Workflow provides a full suite of appenders offered by the logging configuration file.
The console and file appenders are defined in the workflow_logging.xml file.
The logging configuration file defines layouts to control the format of log messages. Each layout specifies a particular message format. A specific layout is associated with each appender, which allows you to specify a different log message format for standard output than for file output, if required.
A logging system includes the following basic components:
A component that produces log messages
A component that distributes (publishes) log messages
By default, Tomcat supports Java-based logging to distribute messages. The LoggingHelper class provides access to the java.util.logging.Logger object used for server logging. The Java Logging APIs can be used to add custom handlers, filters, and formatters.
The workflow service supports logging by using a custom logging framework. In this environment, Tomcat subsystems and workflow components send log requests to the logger objects. The logger objects then assign logrecord objects, which are passed to appender objects for publication. By default, the logger objects log messages to the system console and to the Tomcat server log file with a logging level of Info and above. Events are logged to all activated loggers.
The Tomcat server’s log messages are directed to catalina.out and idapps.out.
OSP log messages are directed to osp.out.
Custom appenders are created to handle log messages to convert the messages to a specific format, then send them to the configured auditing service.
To configure logging, see Configuring Logging.