Topic Logger Plugin
Plugin Overview
topic_logger_plugin provides a log backend topic_logger for AimRT, which is used to publish data in the form of topics. When this plugin is enabled in the configuration file, this log backend can be used.
Topic Logger Backend
topic_logger is used to send logs in the form of topics. All its configuration items are as follows:
Node |
Type |
Optional |
Default |
Description |
|---|---|---|---|---|
topic_name |
string |
Required |
“” |
Topic name for log publishing |
timer_executor_name |
string |
Required |
“” |
Timer name |
interval_ms |
string |
Optional |
100 |
Topic publishing interval |
module_filter |
string |
Optional |
(.*) |
Module filter |
max_msg_size |
size_t |
Optional |
SIZE_MAX |
Maximum length of log messages, unit: byte |
Usage notes:
This backend will publish topics in
protobufformat. For specific content, see topic_logger.proto.This plugin will publish in topic form
The
topic_loggerbackend allows repeated registration. Based on this feature, businesses can publish logs from different modules through different topics.timer_executor_nameconfigures the executor for periodic topic publishing. It must support timer scheduling.interval_msconfigures the interval for periodic disk writing, unit: ms, default 100 ms. Please set an appropriate value considering the balance between data integrity and performance.module_filtersupports configuring which modules’ logs can be processed by this backend in the form of regular expressions. This is different from the module log level, which is global, prerequisite, and affects all log backends, while this configuration only affects this backend.max_msg_sizeconfigures the maximum length of log messages, unit: byte, default SIZE_MAX. Note that the unit is byte, not character count. For example, for UTF-8 encoded characters, the actual length will be adjusted downward to a safe length based on the actual situation.
Here is a simple configuration example:
aimrt:
plugin:
plugins:
- name: topic_logger_plugin
path: ./libaimrt_topic_logger_plugin.so
log:
core_lvl: INFO # Trace/Debug/Info/Warn/Error/Fatal/Off
backends:
- type: topic_logger
options:
timer_executor_name: timer_executor
topic_name: test_topic
executor:
executors:
- name: timer_executor
type: asio_thread
channel:
# ...