Network Deployment (Distributed operating systems), v8.0 > Reference > Log and trace file descriptions
Trace and logging configuration
Configure tracing and logging settings to help diagnose problems or evaluate system performance.
We can configure the application server to start in a trace-enabled state by setting the appropriate configuration properties. We can only enable trace for an application client or stand-alone process at process startup.
In WAS, V6 and later, a logging infrastructure, extending Java Logging, is used. This results in the following changes to the configuration of the logging infrastructure in WAS:
- Loggers defined in Java logging are equivalent to, and configured in the same way as, trace components introduced in previous versions of WAS. Both are referred to as "components."
- Both Java logging levels and WAS levels can be used. The following is a complete list of valid levels, ordered in ascending order of severity:
Trace option Output file all trace.log finest or debug trace.log finer or entryExit trace.log fine or event trace.log detail SystemOut.log config trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) info trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) audit trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) warning trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) severe or error trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) fatal trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) off trace.log and SystemOut.log (If tracing is not enabled, the output file is SystemOut.log) - Set the logging and tracing level for a component to all will enable all the logging for that component. Setting the logging and tracing level for a component to off will disable all the logging for that component.
- We can only configure a component to one level. However, configuring a component to a certain level enables it to perform logging on the configured level and any higher severity level.
- Several levels have equivalent names: finest is equivalent to debug; finer is equivalent to entryExit; fine is equivalent to event; severe is equivalent to error.
New feature: Beginning in WAS v8.0 you can configure the server to use the HPEL log and trace infrastructure instead of using SystemOut.log , SystemErr.log, trace.log, and activity.log files or native z/OS logging facilities. If you are using HPEL, you can access all of your log and trace information using the LogViewer command-line tool from your server profile bin directory. See the information about using HPEL to troubleshoot applications for more information on using HPEL.New feature:
Java Logging does not distinguish between tracing and message logging. However, previous versions of WAS have made a clear distinction between those kind of messages. In WAS, V6 and later, the differences between tracing and message logging are as follows:
- Trace messages are messages with lower severity (for example, tracing messages are logged on levels fine, finer, finest, debug, entryExit, or event).
- Trace messages are generally not localized.
- When tracing is enabled, a much higher volume of messages will be produced, and the trace output will be in the trace file, not the SystemOut/Err log files. The trace file will only appear if tracing is enabled.
- Trace messages provide information for problem determination.
Trace and logging strings
In WAS, V5.1.1 and earlier, trace strings were used for configuring tracing only. Starting in WAS, Version 6 and later, the "trace string" becomes a "logging string"; it is used to configure both tracing and message logging.
In WAS, V5.1.1 and earlier, the trace service for all WAS components is disabled by default.
To request a change to the current state of the trace service, a trace string is passed to the trace service. This trace string encodes the information detailing which level of trace to enable or disable and for which components.
In all versions of WAS, the tracing for all components is disabled by default.
To change to the current state of the tracing and message logging, a logging string must be constructed and passed to the server. This logging string specifies what level of trace or logging to enable or disable for specific components.
You can type in trace strings (or logging strings), or construct them using the admin console. Trace and logging strings must conform to a specific grammar.
For WAS, V5.1.1 and earlier, the specification of this grammar is as follows:
TRACESTRING=COMPONENT_TRACE_STRING[:COMPONENT_TRACE_STRING]* COMPONENT_TRACE_STRING=COMPONENT_NAME=LEVEL=STATE[,LEVEL=STATE]* LEVEL = all | entryExit | debug | event STATE = enabled | disabled COMPONENT_NAME = COMPONENT | GROUPFor WAS, V6 and later, the previous grammar is supported. However a new grammar has been added to better represent the underlying infrastructure:
LOGGINGSTRING=COMPONENT_LOGGING_STRING[:COMPONENT_LOGGING_STRING]* COMPONENT_TRACE_STRING=COMPONENT_NAME=LEVEL LEVEL = all | (finest | debug) | (finer | entryExit) | (fine | event ) | detail | config | info | audit | warning | (severe | error) | fatal | off COMPONENT_NAME = COMPONENT | GROUPThe COMPONENT_NAME is the name of a component or group registered with the trace service logging infrastructure. Typically, WAS components register using a fully qualified Java class name, for example com.ibm.servlet.engine.ServletEngine. In addition, you can use a wildcard character of asterisk (*) to terminate a component name and indicate multiple classes or packages. For example, use a component name of com.ibm.servlet.* to specify all components whose names begin with com.ibm.servlet. Use a wildcard character of asterisk (*) at the end of the component or group name to make the logging string applicable to all components or groups whose names start with specified string. For example, a logging string specifying "com.ibm.servlet.*" as a component name will be applied to all components whose names begin with com.ibm.servlet. When an asterisk (*) is used by itself in place of the component name, the level the string specifies, will be applied to all components.
The following are examples of using an asterisk (*) in logging strings. Note that the asterisk (*) in the logging string does not need to have a period (.) in front of it. The period (.) can be used anywhere in the logging string.
- com.ibm.ejs.ras.*=all - enables tracing for all loggers with names starting with "com.ibm.ejs.ras.". If there is a logger named "com.ibm.ejs.ras" it will not have trace enabled.
- com.ibm.ejs.ras*=all - enables tracing for all loggers with names starting with "com.ibm.ejs.ras", such as com.ibm.ejs.ras, com.ibm.ejs.raslogger, com.ibm.ejs.ras.ManagerAdmin
- In WAS, V5.1.1 and earlier, you could set the level to "all=disabled" to disable tracing. This syntax, beginning with v6.0, will result in LEVEL=info; tracing will be disabled, but logging will be enabled.
- In WAS, V6 and later, "info" is the default level. If the specified component is not present (*=xxx is not found), *=info is always implied. Any component that is not matched by the trace string will have its level set to info.
- If the logging string does not start with a component logging string specifying a level for all components, using the "*" in place of component name, one will be added, setting the default level for all components.
- STATE = enabled | disabled is not needed in v6 and later. However, if used, it has the following effect:
- "enabled" sets the logging for the component specified to the level specified
- "disabled" sets the logging for the component specified to one level above the level specified.
Logging string and resulting logging level. The following examples illustrate the effect that disabling has on the logging level:
Log string Resulting logging level Notes com.ibm.ejs.ras=debug=disabled com.ibm.ejs.ras=finer debug (version 5) = finest (version 6) com.ibm.ejs.ras=all=disabled com.ibm.ejs.ras=info "all=disabled" will disable tracing; logging is still enabled. com.ibm.ejs.ras=fatal=disabled com.ibm.ejs.ras=off com.ibm.ejs.ras=off=disabled com.ibm.ejs.ras=off off is the highest severity
Proceed from broad to specific trace specifications in the trace string
Start the trace string from the most broad component groups and then select more specific traces. The advantage to this approach is that the trace settings for classes or packages that are contained in a larger group are specified correctly by including them later in the trace string.
The logging string is processed from left to right. During the processing, part of the logging string might be modified or removed if the levels they configure are overridden by another part of the logging string.
Groups that contain packages that disable traces disable any packages that are enabled previously on the same line. For example:
*=off : MyGroup1=info : MyGroup2=finest : com.mycompany.mypackage.*=info : com.mycompany.mypackage.MyClass=finestThis trace string indicates that the only tracing should come from the MyGroup1 group, the MyGroup2 group, and the com.mycompany.mypackage.* package with more specific tracing for MyClass class. If you reverse this string, all tracing is disabled.
Examples
v5 and Version 6 strings. Examples of legal trace strings include:
Version 5 syntax Version 6 syntax com.ibm.ejs.ras.ManagerAdmin=debug=enabled com.ibm.ejs.ras.ManagerAdmin=finest com.ibm.ejs.ras.ManagerAdmin=all=enabled,event=disabled com.ibm.ejs.ras.ManagerAdmin=detail com.ibm.ejs.ras.*=all=enabled com.ibm.ejs.ras.*=all com.ibm.ejs.ras.*=all=enabled:com.ibm.ws.ras=debug= enabled,entryexit=enabled com.ibm.ejs.ras.*=all:com.ibm.ws.ras=finer
Enable trace on client and stand-alone applications
Enable trace at server startup
Enable trace on a running server
Manage the application server trace service
Use HPEL to troubleshoot applications