Performance measurement loggers
Performance measurement loggers are available to gather performance data to help you identify any performance bottlenecks.
The performance measurement loggers are included as an enhanced service logger package in the list of WebSphere Commerce trace components. The performance measurement logger package, com.ibm.commerce.foundation.logging.service.*, is a replacement for the com.ibm.commerce.foundation.logging.ServiceLogger service logger. This package continues to provide all of the logging content that is available with the com.ibm.commerce.foundation.logging.ServiceLogger service logger.
You can use the performance measurement loggers with the performance measurement tool or independently. With the Performance Measurement tool, you can gather execution statistics on request execution by capturing metrics on important application layers. For more information about using the performance measurement loggers with the Performance measurement tool, see Using the Performance Measurement tool.
Some of the loggers might not display within the com.ibm.commerce.foundation.logging.service.* package until the class that uses the logger is being used by the code for your site. For each logger, you can set the message or trace log detail level or disable logging for each individual logger. For detailed instructions for configuring a logger package or individual logging layer and changing the log detail levels for a logger, Configuring logging.
- BeanLogger
- Measures the activation and population of data beans. This logger is implement by the DataBeanManager class.
- BodLogger
- Measures the requests to the Business Object Definition (BOD) layer.Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.This logger is implement by the following classes:
- AbstractActionBusinessObjectDocumentCmdImpl
- AbstractChangeNounPartActionCmdImpl
- AbstractGetBusinessObjectDocumentCmdImpl
- CommandLogger
- Measures framework commands and the execution of classes that are extended from the
com.ibm.commerce.command.AbstractECTargetableCommand class.This logger is implement by the following classes:
- AbstractECCommand
- AbstractECTargetableCommand
- CommandContextImpl
- InternalServletRequestLogger
- Measures the servlet include and forward requests, which include any imported JSP
execution.Note: When you use this logger with the Performance Measurement tool, the result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size with this logging layer might not be reliable.
This logger is implement by the JspExecutionServiceLoggingFilter class:
- RestClientLogger
- Measures the outbound calls to REST services that are made using the storefront REST
Tag.Note: When you use this logger with the Performance Measurement tool, the result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.
This logger is implement by the RESTTag class.
- RestServerLogger
- Measures the inbound calls to REST services. When you use this logger with the Performance
Measurement tool, this logging layer does not measure the following metrics:
- Whether caching is enabled for the operation
- Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.This logger is implement by the following classes:- RESTDispatcherFilter
- RestTransactionFilter
- ServletRequestLogger
- Measures the servlet requests that hit the RuntimeServletFilter, which is usually where the
request for the operation start. When you use this logger with the Performance Measurement tool,
this logging layer does not measure the following metrics:
- Whether caching is enabled for the operation
- Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size with this logging layer might not be reliable.This logger is implemented by the RESTCacheFilter RunTimeServletFilter class.
- ExternalCallLogger
- Logs inbound and outbound calls between WebSphere Commerce and external systems. This logger
provides only information logs. When you use this logger with the Performance Measurement tool, this
logging layer does not measure the following metrics:
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
This logger is implemented by the PerformanceLoggingHelper class.
- JcaLogger
- Logs the invocation binding that uses the WebSphere Commerce JCA framework and messaging
system to perform the service invocation of remote components. When you use this logger with the
Performance Measurement tool, this logging layer does not measure the following metrics:
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
This logger is implemented by the JCAInvocationBindingImpl class.
- LocalEjbLogger
- Logs the invocation binding that uses JavaBeans to make the request. When you use this logger
with the Performance Measurement tool, this logging layer does not measure the following metrics:
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
This logger is implemented by the LocalEJBInvocationBindingImpl class.
- RestInvalidationFilterLogger
- Logs REST requests on the invalidation layer. When you use this logger with the Performance
Measurement tool, this logging layer does not measure the following metrics:
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
This logger is implemented by the RESTInvalidationFilter class.
- SchedulerLogger
- Logs the tasks that are run as scheduled jobs. When you use this logger with the Performance
Measurement tool, this logging layer does not measure the following metrics:
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
This logger is implemented by the SchedulerJob class.
- SearchPreviewServletLogger
- Logs the servlet requests that are forwarded to the CompositionRequestServlet application for
processing. When you use this logger with the Performance Measurement tool, this logging layer does
not measure the following metrics:
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.This logger is implemented by the SolrRESTSearchPreviewServlet class.
- SolrLogger
- Logs operations that are related to WebSphere Commerce search queries.
- Result size
- Whether caching is enabled for the operation.
- Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.This logger is implemented by the SearchQueryHelper class.
Performance Measurement tool messaging and tracing levels
The following message and trace levels for the logging package and individual loggers affect the gathering of performance metrics when you use the Performance Measurement tool:- INFO and above
- Disables all of the loggers for the tool.
- FINE
- Enables the loggers and gathers performance metrics. Metrics that can cause an impact to system performance are not gathered. For instance, the result size measurements can be ignored with this trace level.
- FINER and below
- Enables the loggers and gathers performance metrics. The gathered metrics include metrics that
can affect performance to gather. For instance, the result size measurements are gathered with these
trace levels.
You can gather more precise metrics by enabling the logger at the FINEST level. For production systems, you are recommended to use the FINE level to minimize any performance impact.
com.ibm.commerce.foundation.logging.service.ServletRequestLogger=FINE
This logging configuration measures only the inbound servlet requests.com.ibm.commerce.foundation.logging.service.*=FINER
This configuration measures the execution time for each execution layer. The generated logs do not include expensive responsive size measurements. The configuration also creates only exit logs.com.ibm.commerce.foundation.logging.service.*=FINEST
This configuration measures the execution time for each execution layer. This generated logs include the response size measurements. The configuration creates entry and exit logs. The configuration also includes more information logs that are relevant to each layer.
To disable the logging for any logger, select No Logging.