8.4. Logging plugin: DDS:Logging:DDS_LogTopic
The logging plugin provides the necessary operations to log the security events triggered by the other security plugins supported by Fast DDS (Authentication plugin: DDS:Auth:PKI-DH, Access control plugin: DDS:Access:Permissions, and Cryptographic plugin: DDS:Crypto:AES-GCM-GMAC). Therefore, the aforementioned security plugins will use the logging plugin to log their events. These events can be reporting of expected behavior, as well as security breaches and errors.
The logging plugin implemented in Fast DDS collects all security event data of a DomainParticipant and saves them in a local file. The log messages generated by the logging plugin include an ID that uniquely identifies the DomainParticipant that triggered the event, the DDS Domain identifier to which the DomainParticipant belongs, and a time-stamp.
The logging plugin implemented in Fast DDS is referred to as “DDS:Logging:DDS_LogTopic”, in compliance with the DDS Security specification. This plugin is explained in detail below. This plugin can be configured to filter according to up to eight levels of severity of the messages.
The DDS:Logging:DDS_LogTopic authentication plugin, can be activated setting the DomainParticipantQos
properties()
dds.sec.log.plugin
with the value builtin.DDS_LogTopic
.
The following table outlines the properties used for the DDS:Logging:DDS_LogTopic plugin configuration.
Property name |
Property value |
|
---|---|---|
Value |
Definition |
|
logging_level |
|
System is unusable. Should not continue use. |
|
Should be corrected immediately. |
|
|
A failure in primary application. |
|
|
General error conditions. Default value. |
|
|
May indicate future error if action not taken. |
|
|
Unusual, but nor erroneous event or condition. |
|
|
Normal operational. Requires no action. |
|
|
Normal operational. |
|
log_file |
Path of the file in which the log messages are to be saved. |
Note
All listed properties have “dds.sec.log.builtin.DDS_LogTopic.” prefix.
For example: dds.sec.log.builtin.DDS_LogTopic.logging_level
.
The following is an example of how to set the properties of DomainParticipantQoS for the DDS:Logging:DDS_LogTopic plugin configuration.
C++ |
DomainParticipantQos pqos;
// Activate DDS:Logging:DDS_LogTopic plugin
pqos.properties().properties().emplace_back("dds.sec.log.plugin",
"builtin.DDS_LogTopic");
// Configure DDS:Logging:DDS_LogTopic plugin
pqos.properties().properties().emplace_back(
"dds.sec.log.builtin.DDS_LogTopic.logging_level",
"EMERGENCY_LEVEL");
pqos.properties().properties().emplace_back(
"dds.sec.log.builtin.DDS_LogTopic.log_file",
"myLogFile.log");
|
XML |
<participant profile_name="secure_domainparticipant_conf_logging_plugin_xml_profile">
<rtps>
<propertiesPolicy>
<properties>
<!-- Activate DDS:Auth:PKI-DH plugin -->
<property>
<name>dds.sec.log.plugin</name>
<value>builtin.DDS_LogTopic</value>
</property>
<!-- Configure DDS:Auth:PKI-DH plugin -->
<property>
<name>dds.sec.log.builtin.DDS_LogTopic.logging_level</name>
<value>EMERGENCY_LEVEL</value>
</property>
<property>
<name>dds.sec.log.builtin.DDS_LogTopic.log_file</name>
<value>myLogFile.log</value>
</property>
</properties>
</propertiesPolicy>
</rtps>
</participant>
|