Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | kilted |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-04-06 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.2 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-04-06 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.2 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| rcl_logging_syslog | 0.1.0 |
README
rcl_logging_syslog 🚢🚀🚂
rcl_logging_syslog is alternative logging backend implementation that can be used for ROS 2 application via rcl_logging_interface.
rcl_logging_syslog uses SYSLOG(3) to send the log data to rsyslog a.k.a rocket-fast system for log processing 🚀.
The main objective is that Enabling ROS 2 logging system with Cloud-Native Log Management and Observability.

see overview slide deck for more information.
Motivation
The logging data is critical especially for entire system observability and status, so that application can alert the administrator or even give the feedback to the system with adjusting the parameter. This importance rises once it comes to robotics and robot application, especially distributed system such as ROS 2 or edge computing because we must be able to specify what went wrong in the 1st place with these logging data.
rsyslog is available in default Ubuntu distribution managed by system service, performative, and many configuration supported including log data pipeline. So that user can choose the logging configuration depending on the application requirement and use case, sometimes file system sink, sometimes forwarding to remote rsyslogd, or even FluentBit.
FluentBit is a Fast Log Processor and Forwarder part of Graduated Fluentd Ecosystem and a CNCF sub-project.
Demonstration
See how it works 🔥
- rsyslog / FluebtBit
https://github.com/user-attachments/assets/bdb05bf7-92b2-4b9a-8f20-3d3b803a7a86
- rsyslog / Fluentd / Loki / Grafana
https://github.com/user-attachments/assets/4a1aae42-5c55-4f31-9198-8c7c246244ca
Tutorials
Supported ROS Distribution
| Distribution | Supported | Branch | Dynamic Loading |
|---|---|---|---|
| Rolling Ridley | ✅ |
rolling (Development) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).