What gets entered into logs is up to you. There are two dimensions to what produces log content. The loglevel records ascending levels of operational information from nothing to everything. The logFiltersAccept let you control whether each information type created by each of the process reporting mechanisms is accepted into the logs. The resulting logs meld entries from both dimensions sequentially, and record all the information into log files.

Log Level

The loglevel specifies the depth of detail in standard logging. When set to OFF, no log entries are produced. Each higher level enables log entries triggered for that level, as well as each lower level. Set your preferred log level by uncommenting the line # loglevel= in brms.properties, and then setting the value to exactly one of:
  • OFF - Turn off all logging
  • ERROR - Log only errors
  • WARN - Log all errors and warnings
  • INFO - Log all info, warnings and errors (Default value)
  • DEBUG - Log all debug information and all messages applicable to INFO level
  • TRACE - Equivalent to DEBUG plus some tracing logs
  • ALL - Maximum detail

Log Filters

The logFiltersAccept setting lets you include specified types of information emanating from running services in the logs. When the log level is set to INFO or higher, this property accepts logging of information types that are listed. Set your preferred log filters by uncommenting the line # logFiltersAccept= in brms.properties, and then listing functions you want to have in logs as comma-separated values from the following:
  • RULETRACE
  • DIAGNOSTIC - Records of service performance diagnostics at a defined interval (default is 30 seconds) - Records detailed rule execution information for use by Progress Support in diagnosing customer issues. This option should only be enabled if specifically requested by Support.
  • TIMING - Records timing events
  • VIOLATION - Records exceptions
  • INTERNAL - Records internal debug events
  • SYSTEM - Records low-level errors and fatal events
  • PAYLOAD - Records the request payload and the response payload

The default logFiltersAccept setting is: DIAGNOSTIC,SYSTEM

Examples:

  • Accept all: logFiltersAccept=RULETRACE,DIAGNOSTIC,TIMING,VIOLATION,INTERNAL,SYSTEM,PAYLOAD
  • Accept none: logFiltersAccept=
  • Accept just ruletracing, diagnostics, and timing: logFiltersAccept=RULETRACE,DIAGNOSTIC,TIMING

About the PAYLOAD option when configuring filters

Note: Caution - Records detailed: logging the payload may expose sensitive data to anyone with access to the logs.

The PAYLOAD filter option logs the request payload and the response payload in the server logs.

1. Log all payload information passed to and returned by a decision service.
loglevel=INFO
logFiltersAccept=PAYLOAD
2. Example of request payload:
INFO PAYLOAD [http-nio-8850-exec-8] ... CcServerThreadPoolCallableJson.call() - Start:
	{"Objects":[{"volume":10,...},{"volume":40,...},...],"name":"tutorial_example","majorVersion":"0","minorVersion":"16"} filter controls the logging of request and response
				payloads. Payloads captured in the logs only when this specific filter is enabled, thus
				preventing the inadvertent logging of customer data.
3. Example of response payload:
INFO PAYLOAD [http-nio-8850-exec-8] ... CcServerThreadPoolCallableJson.call() - End:
	{"Messages":{"Message":[{"severity":"Info",...},...]},"Objects": {"volume":10,"container":"standard",...},...]}