Tuning the Rule Execution Server logging level
To make it easier for you to fine-tune and analyze logs, each Rule Execution Server component uses its own logger. By using the appropriate logging service for your application server, developers can log messages that are based on message type and level. They can also control how these messages are stored at run time.
Symptoms
For troubleshooting purposes, you want to adjust the Rule Execution Server logging level.Environment
All Rule Execution Server components use the JDK logging API to log messages. Developers can use that Java™ API to control message levels and runtime formats and storage. Rule Execution Server uses the following standard Java logging services:- Java logger, also known as JDK logging
- The
java.util.loggingpackage. For more information about the API, see the Oracle Technology Network. - Java EE Connector Architecture (JCA) logging service
- For more information, see the Oracle Technology Network.
Resolving the problem
The following table lists the logger names that are used by each Rule Execution Server component.
| Component | Logger name |
|---|---|
| Business Automation Insights event | com.ibm.rules.bai.plugin |
| Common modules | com.ibm.rules.res.common |
| Management and XU MBeans | com.ibm.rules.res.mbean |
| Rule Execution Server persistence (file, JDBC, or datasource) | com.ibm.rules.res.persistence |
| Rule Execution Server SQL Request (JDBC or datasource) | com.ibm.rules.res.persistence.sql |
| Ruleset execution: rule session, execution units (XU) | com.ibm.rules.res.execution |
| Management plug-in | com.ibm.rules.res.execution.xu.plugin.management |
| Rule Execution Server console | com.ibm.rules.res.console |
| Hosted transparent decision services | com.ibm.rules.res.htds |
| Testing and simulation through Decision Runner | com.ibm.rules.res.cdi |
| Decision Warehouse | No logger. Decision Warehouse stores execution traces in a database. |
- Execution stack (XU and rule sessions)
- On JBoss, the activity of the execution unit is logged by the Java logger. On the other supported application servers, the execution unit uses the logging service of the Java connector architecture (JCA). The traceLevel and traceAutoFlush properties control the XU logging with JCA.Note: The Java logging API is not supported for the XU in Java SE mode. To retrieve the log, use the method
ilog.rules.res.session.IlrJ2SESessionFactory#IlrJ2SESessionFactory(PrintWriter).- JBoss 6.1 EAP
You can change the log level through the Java logging options in the administration console of the application server.
- Other supported application servers
The XU is packaged in a <InstallDir>\executionserver\applicationservers\<appserver>\jrules-res-xu-<appserver>.rar file.
You can tune the log by using the traceLevel and traceAutoflush properties of the XU connection factory. Use the specific tool of your application server to change the settings of a connection factory. For more information, see the documentation in the XU XML descriptor that is provided by the rule session.
To turn on the full XU log, set the values as follows:- traceLevel to ALL
- traceAutoFlush to true
- Other execution components, such as the Rule Execution Server console and hosted transparent decision services (HTDS)
-
By default, the Rule Execution Server console uses the following .ear file: <InstallDir>\executionserver\applicationservers\<appserver>\jrules-res-management-<appserver>.ear
By default, hosted transparent decision services use the following .ear file: <InstallDir>\executionserver\applicationservers\<appserver>\jrules-res-htds-<appserver>.ear. On the supported application servers, this logging is disabled by default.
To parameterize the log trace for all other execution components, use the JDK logging mechanism, and follow the standard procedure for your application server.