6.4. Logs
Observability Framework stores the log messages generated by Connext applications and stores them in a third-party backend for analysis.
Log messages generated before Observability Library is enabled are not stored.
Each log message is divided into three parts to facilitate analysis, as illustrated in Figure 6.1.
This release only supports MIDDLEWARE as a Syslog Facility. Future releases will also provide support for SECURITY, SERVICE, and USER.
Syslog Level can have the following values: EMERGENCY, ERROR, WARNING, INFORMATIONAL, or DEBUG.
The mapping between Connext Log Levels and Syslog Levels is as follows:
NDDS_Config_LogLevel |
Syslog Level |
Minimum Syslog Verbosity that lets the message pass through |
---|---|---|
NDDS_CONFIG_LOG_LEVEL_FATAL_ERROR |
EMERGENCY |
ERROR |
NDDS_CONFIG_LOG_LEVEL_ERROR |
ERROR |
ERROR |
NDDS_CONFIG_LOG_LEVEL_WARNING |
WARNING |
WARNING |
NDDS_CONFIG_LOG_LEVEL_STATUS_LOCAL |
INFORMATIONAL |
INFORMATIONAL |
NDDS_CONFIG_LOG_LEVEL_STATUS_REMOTE |
INFORMATIONAL |
INFORMATIONAL |
NDDS_CONFIG_LOG_LEVEL_DEBUG |
DEBUG |
DEBUG |
Note
In the current release, it is not possible to filter only emergency (NDDS_CONFIG_LOG_LEVEL_FATAL_ERROR) log messages from Observability Dashboards.
The Activity Context provides context for the log message associated with it. The information provided by the activity context includes a sequence of activities and resources to which the activities apply. Comparing the Activity Context to traces and spans in OpenTelemetry, you can think of the activity context as a trace and the individual activities within the activity context as spans within the trace. For additional information on the Activity Context, see Format of Logged Messages in the RTI Connext Core Libraries User’s Manual.
The Activity Context is available by default in all log messages generated by a Connext application. However, you can disable this information by using the APIs in the C language binding: see NDDS_Config_Logger_set_print_format and NDDS_Config_Logger_set_print_format_by_log_level. The same APIs are available in other language bindings.