|
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | kilted |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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.2 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-04-06 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
Changelog for package rcl_logging_syslog
0.1.2 (2026-02-20)
-
update doc with rcl_logging_implementation support. (#138)
- update doc with rcl_logging_implementation support.
* typo fixes and address review comments. ---------
-
Upgrade github action/run-gemini-cli workflows. (#136)
-
enable actions/stale to close issues and PRs. (#131)
- enable actions/stale to close issues and PRs.
* address Copilot review comments. ---------
-
ROSCon 2025 Singapore Slide Deck. (#125)
-
add gemini-cli github actions. (#118)
-
Contributors: Tomoya Fujita
0.1.1 (2025-06-10)
-
enable builtin dictionaries with custom ones. (#111)
-
Support codespell (#106)
- support codespell github action.
- spelling fixes by codespell.
* add empty dictionary. ---------
-
support kilted kaiju, branch rules and github action. (#102)
- support kilted kaiju, branch rules and github action.
- Update slide deck icnluding PDF.
* update overview.html. ---------
-
support full source build via github workflow. (#95)
-
fix ROS by the Bay presentation slide. (#91)
-
cosmetic fix for markdown presentation URLs. (#88)
-
add slide deck for ROS by the Bay 20250130. (#85)
- add slide deck for ROS by the Bay 20250130.
* add pdf and html slide decks. ---------
-
fix nightly workflow. (#82)
-
add label [skip-backport]{.title-ref} to skip the backport to downstream branches. (#79)
-
make nightly build and workflow to be more generic. (#76)
- remove humble and jazzy nightly workflow files.
* create generic nightly workflow that can be used for any distro. ---------
-
add nightly workflow files for each distribution. (#73)
-
add .mergify/config.yml to automatic backport support. (#68)
-
remove Iron Irwini since it is already End of Life. (#65)
-
add github workflows status bars in README. (#60)
-
github workflow script should be distro agnostic package names. (#56)
-
enable github workflows to rolling branch. (#52)
- enable github workflows to rolling branch.
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.2 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-04-06 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
Changelog for package rcl_logging_syslog
0.1.2 (2026-02-20)
-
update doc with rcl_logging_implementation support. (#138)
- update doc with rcl_logging_implementation support.
* typo fixes and address review comments. ---------
-
Upgrade github action/run-gemini-cli workflows. (#136)
-
enable actions/stale to close issues and PRs. (#131)
- enable actions/stale to close issues and PRs.
* address Copilot review comments. ---------
-
ROSCon 2025 Singapore Slide Deck. (#125)
-
add gemini-cli github actions. (#118)
-
Contributors: Tomoya Fujita
0.1.1 (2025-06-10)
-
enable builtin dictionaries with custom ones. (#111)
-
Support codespell (#106)
- support codespell github action.
- spelling fixes by codespell.
* add empty dictionary. ---------
-
support kilted kaiju, branch rules and github action. (#102)
- support kilted kaiju, branch rules and github action.
- Update slide deck icnluding PDF.
* update overview.html. ---------
-
support full source build via github workflow. (#95)
-
fix ROS by the Bay presentation slide. (#91)
-
cosmetic fix for markdown presentation URLs. (#88)
-
add slide deck for ROS by the Bay 20250130. (#85)
- add slide deck for ROS by the Bay 20250130.
* add pdf and html slide decks. ---------
-
fix nightly workflow. (#82)
-
add label [skip-backport]{.title-ref} to skip the backport to downstream branches. (#79)
-
make nightly build and workflow to be more generic. (#76)
- remove humble and jazzy nightly workflow files.
* create generic nightly workflow that can be used for any distro. ---------
-
add nightly workflow files for each distribution. (#73)
-
add .mergify/config.yml to automatic backport support. (#68)
-
remove Iron Irwini since it is already End of Life. (#65)
-
add github workflows status bars in README. (#60)
-
github workflow script should be distro agnostic package names. (#56)
-
enable github workflows to rolling branch. (#52)
- enable github workflows to rolling branch.
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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
| Description | |
| Checkout URI | https://github.com/fujitatomoya/rcl_logging_syslog.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-04-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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) |
✅ |
| Kilted Kaiju | ✅ | kilted |
❌ |
| Jazzy Jalisco | ✅ | jazzy |
❌ |
| Humble Hawksbill | ✅ | humble |
❌ |
rcl_logging_implementation
Starting with Rolling Ridley, ROS 2 introduces rcl_logging_implementation, a package that enables runtime dynamic loading of logging backends, similar to how rmw_implementation works for middleware selection.
This abstraction layer allows users to switch between different logging implementations (such as rcl_logging_spdlog, rcl_logging_noop, or rcl_logging_syslog) without rebuilding RCL or application code.
See the ROS 2 Logging Documentation for more details.
Runtime Dynamic Loading vs Static Linking
The logging system supports two build configurations:
Dynamic Loading (Default, Rolling or later)
By default, rcl links against rcl_logging_implementation, which dynamically loads the logging backend at runtime.
This approach provides maximum flexibility, allowing the logging implementation to be changed via the RCL_LOGGING_IMPLEMENTATION environment variable without recompilation.
- The logging implementation is loaded as a shared library at runtime.
- No rebuild of
rclis required to switch between logging implementations. - Simply build
rcl_logging_syslogand set the environment variable to use it.
Static Linking (Kilted or older distributions)
For Kilted, Jazzy, and Humble distributions, the rcl_logging_implementation package is not available.
Users must rebuild rcl with the RCL_LOGGING_IMPLEMENTATION CMake/environment variable set at build time to statically link rcl_logging_syslog.
- The specified implementation is statically linked into
rclat build time. - Runtime switching is NOT available.
- Requires rebuilding
rclwhenever you want to change the logging backend.
Installation
Prerequisites
- rsyslog installation
rcl_logging_syslog requires rsyslog package, which Ubuntu should have already in default.
But if you are using container, the situation is bit different from host system since there is no system services or rsyslogd is running by default.
In the case of container, we need to install rsyslog packages in the container root file system.
[!NOTE] We can enable the container with host system privileges but that is NOT recommended, especially for security.
### Install rsyslog package
apt install rsyslog
- create
rosdirectory forrsyslog.
The following commands require root permission.
File truncated at 100 lines see the full file
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 |