Question

I need to increase the logging level for BA. How do I do that? Procedure valid for BA < 6.0 does not seem to work anymore.

Answer

The BA internal structure has been changed significantly since BA 6.0.0, there are no more separate logs for each container.

The log level is defined in the /usr/local/bm/etc/ssm.conf.d/global.conf file (%SSMROOT%/etc/ssm.conf.d/global.conf on Windows, %SSMROOT% can be obtained using the command set | findstr SSMROOT in the command line)).

The default log level is 4. To change it open the global.conf for editing and add/modify LogLevels in the [environment] section of the file.

See an example below:

[environment]
<...>
LogLevels = generic_worker:7 scheduler:7

The format for the option it is a space-separated list of:

container name:log level

The list of containers for BA 6.x: WWW, XMLRPCD, _amt_service_, csmapi, generic_worker, logsrv_ctl, pcpapi, scheduler, upsellapi.

for BA 7.x: billing, billing.amt, billing.scheduler, billing.www, billing.xmlrpcd, logsrv_ctl

The * set for the container name means all the other not specified containers, e.g. the record:

LogLevels = *:3 generic_worker:7 scheduler:7

means setting the loglevel 3 to all the containers, except specified generic_worker and scheduler.

Log level is an integer value from 0 to 7:

  • 0 - FATAL, only fatal error that cannot be, even theoretically, processed by the application, for example, a system error like 'unable to allocate memory' are written to the log.
  • 1 - ERR, any error that can be theoretically processed by the application, for example, by the caller, but the module which caught it cannot process the error, is written to log.
  • 2 - WARN, any error that was caught and processed by the module.
  • 3 - NOTE, is used for logging key application execution points, like incoming RPC calls.
  • 4 - TRACE, is the DEFAULT logging level. Diagnostic messages are displayed by calling 'tracing arguments'.
  • 5 - INFO, records the information about key code branching points, e.g. calls to external systems with their addresses.
  • 6 - DEBUG, records all key code points with the data, for example, 'entering critical section' with the value of mutex used. At this level, database statements are recorded. The level is often used for troubleshooting.
  • 7 - ALL, is the last chance before starting a debugger data values, for example, it requires full response text from external systems or data fetched from the database. Rarely used for troubleshooting as a lot of excessive data might appear in the log.

Please note that for WWW.log debug levels 6-7 cannot be set for PCI compliance reasons.

After making any changes in the global.conf file BA restart is required.

Change log level without BA restart

Use the /usr/local/stellart/bin/logsrv_ctl utility to manage log levels of PBA containers on-the-fly (without need to restart BA), refer to kb #119087 for the details.

Internal content

Link on internal Article