Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version humble
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
jazzy

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
kilted

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version kilted
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
rolling

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version rolling
Last Updated 2026-04-06
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.2

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
github

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version rolling
Last Updated 2026-04-06
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.2

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version humble
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version humble
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version humble
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).
No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

rcl_logging_syslog repository

rcl_logging_syslog

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/fujitatomoya/rcl_logging_syslog.git
VCS Type git
VCS Version humble
Last Updated 2026-04-07
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rcl_logging_syslog 0.1.0

README

humble jazzy kilted rolling nightly

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 rcl is required to switch between logging implementations.
  • Simply build rcl_logging_syslog and 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 rcl at build time.
  • Runtime switching is NOT available.
  • Requires rebuilding rcl whenever you want to change the logging backend.

Installation

Prerequisites

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 ros directory for rsyslog.

The following commands require root permission.

File truncated at 100 lines see the full file

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. ~~~ Contributors must sign-off each commit by adding a `Signed-off-by: ...` line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/).