|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | kilted |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.2.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Changelog for package rcl_logging_syslog
0.2.0 (2026-09-09)
-
mergify: do not auto-backport when an explicit backport-* label is set (#224) The "automatic backport to all supported distribution" rule matched every merged PR based on rolling, so a PR labeled backport-lyrical (e.g. #179) was backported to all distribution branches by the automatic rule firing in parallel with the label rule. Exclude PRs carrying any backport-* label from the automatic rule so explicit labels select the targets. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
Update README.md links to reflect new ROS documentation structure (#179)
- Update README.md links to reflect new ROS documentation structure
* Apply batched suggestions from code review Co-authored-by: Daisuke Kato <<kato.daisuke429@gmail.com>> ---------Co-authored-by: Tomoya Fujita <<tomoya.fujita825@gmail.com>>
-
skip claude code review for pull requests from forks. (#215) GitHub runs pull_request workflows from forks with a read-only token, no repository secrets and no OIDC token, so claude-code-action cannot authenticate and fails with "Could not fetch an OIDC token". See https://github.com/fujitatomoya/rcl_logging_syslog/pull/179. Switching to pull_request_target is not an option: the action also requires the triggering actor to have write access, and bypassing that with allowed_non_write_users would let untrusted PR content drive Claude with the repository's credentials. Skip the job when the PR head is a fork instead, as the former Gemini dispatch workflow did. Maintainers can still request a review on such a PR by commenting "@claude", which runs claude.yml in the base repository with the maintainer as the actor.
-
remove gemini actinos. (#210)
-
use local marketplace plugins because of company rules. (#205)
-
use official claude code marketplace. (#200)
-
allow mergifyio to start the claude action app. (#195)
-
Add claude GitHub actions 1788742709211 (#186)
- "Claude PR Assistant workflow"
- "Claude Code Review workflow"
-
support lyrical luth. (#183)
-
enable ros2-abi-action. (#163)
- enable ros2-abi-action.
- upgrade ros2-abi-action.
- always use ros2-abi-action@latest for now.
- retrigger CI to pick up fixed ros2-abi-action
* retrigger CI to pick up ros2-abi-action nounset fix ---------
-
Bump actions/stale from 10 to 11 in the github-actions group (#172) Bumps the github-actions group with 1 update: [actions/stale](https://github.com/actions/stale). Updates [actions/stale]{.title-ref} from 10 to 11
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11) ---updated-dependencies:
- dependency-name: actions/stale dependency-version: '11' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Bump actions/setup-python from 6 to 7 in the github-actions group (#168) Bumps the github-actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python). Updates [actions/setup-python]{.title-ref} from 6 to 7
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.2.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Changelog for package rcl_logging_syslog
0.2.0 (2026-09-09)
-
mergify: do not auto-backport when an explicit backport-* label is set (#224) The "automatic backport to all supported distribution" rule matched every merged PR based on rolling, so a PR labeled backport-lyrical (e.g. #179) was backported to all distribution branches by the automatic rule firing in parallel with the label rule. Exclude PRs carrying any backport-* label from the automatic rule so explicit labels select the targets. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
Update README.md links to reflect new ROS documentation structure (#179)
- Update README.md links to reflect new ROS documentation structure
* Apply batched suggestions from code review Co-authored-by: Daisuke Kato <<kato.daisuke429@gmail.com>> ---------Co-authored-by: Tomoya Fujita <<tomoya.fujita825@gmail.com>>
-
skip claude code review for pull requests from forks. (#215) GitHub runs pull_request workflows from forks with a read-only token, no repository secrets and no OIDC token, so claude-code-action cannot authenticate and fails with "Could not fetch an OIDC token". See https://github.com/fujitatomoya/rcl_logging_syslog/pull/179. Switching to pull_request_target is not an option: the action also requires the triggering actor to have write access, and bypassing that with allowed_non_write_users would let untrusted PR content drive Claude with the repository's credentials. Skip the job when the PR head is a fork instead, as the former Gemini dispatch workflow did. Maintainers can still request a review on such a PR by commenting "@claude", which runs claude.yml in the base repository with the maintainer as the actor.
-
remove gemini actinos. (#210)
-
use local marketplace plugins because of company rules. (#205)
-
use official claude code marketplace. (#200)
-
allow mergifyio to start the claude action app. (#195)
-
Add claude GitHub actions 1788742709211 (#186)
- "Claude PR Assistant workflow"
- "Claude Code Review workflow"
-
support lyrical luth. (#183)
-
enable ros2-abi-action. (#163)
- enable ros2-abi-action.
- upgrade ros2-abi-action.
- always use ros2-abi-action@latest for now.
- retrigger CI to pick up fixed ros2-abi-action
* retrigger CI to pick up ros2-abi-action nounset fix ---------
-
Bump actions/stale from 10 to 11 in the github-actions group (#172) Bumps the github-actions group with 1 update: [actions/stale](https://github.com/actions/stale). Updates [actions/stale]{.title-ref} from 10 to 11
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11) ---updated-dependencies:
- dependency-name: actions/stale dependency-version: '11' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Bump actions/setup-python from 6 to 7 in the github-actions group (#168) Bumps the github-actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python). Updates [actions/setup-python]{.title-ref} from 6 to 7
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rcl_logging_syslog at Robotics Stack Exchange
|
rcl_logging_syslog package from rcl_logging_syslog reporcl_logging_syslog |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-09-13 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tomoya Fujita
Authors
- Tomoya Fujita
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) |
✅ |
| Lyrical Luth | ✅ | lyrical |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Lyrical Luth, 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, Lyrical 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.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| ament_lint_auto | |
| ament_lint_common | |
| performance_test_fixture | |
| rcl_logging_interface | |
| rcpputils | |
| rcutils |
System Dependencies
| Name |
|---|
| rsyslog |