The cpm library provides a logging functionality that includes writing to stdout, to a log file and to a RTI DDS DataWriter. The logs sent via the latter over the network are listened to by the LCC and shown in the Logs UI. (The LCC only show the newest ~10000 logs to keep the UI responsive). 

Log structure

The log messages include a unique identifier of the sender (ID), the content of the log message (Content) and the point in time when the log message was created (At time). They appear in a table in the middle of the logs view.

The Autoscroll check button can be used to toggle automatic scrolling to the newest log entry on or off. The newest log entry is always at the bottom of the list. Entries are sorted w.r.t. their timestamp.

If the content of a cell is not fully visible, the user can change the width of each column using the mouse (by dragging the vertical lines between each of the cells at the head of the table). If that is not sufficient, the user can also hover over the region of interest - the full text then appears below the pointer.

Filtering Logs

The logs can be filtered using a regex search. The search can either be performed over all columns or only in one of them - this can be selected using the filter column combo box. The regex search string can be put in the filter string search entry. The table below either shows the result of the applied filter, or all logs if no filter is applied (if the search entry is empty).

Warning: A filter is only applied to all messages that have been received up to that point in time. New logs are received in the background, but are not added to the result of the search unless the search string is changed (which starts a new search).

Setting a Log Level

In the Logs tab, you can also set a log level for the domain of the cpm library DomainParticipant (the dds_domain you started the LCC with).

This log level is used to set the verbosity of the participants when logging information.

Log levelDescription
0Do not log anything (e.g. for performance reasons)
1 (default)Only log critical failures
2Also log less relevant error messages
3Also log any other message of lesser relevance

For each logged message, the log level can be set programatically (in C++, using the cpm library). The message is only logged if its own log level is higher than or equal to the system-wide log level.