Skip to content

Logging Design Document #314

Description

@clalancette

In this context, I'm going to define "logging" narrowly as "getting error, warning, info, and debug messages to the user". These messages may either be printed to a tty, or written to a file, or both.

ROS 2 currently has a number of different logging pieces:

  • rcutils has the RCUTILS_LOG family of macros
  • rclcpp has the RCLCPP_LOG family of macros
  • rcl_logging contains backend loggers for controlling log levels and writing data out to files
  • rcl has infrastructure for initializing the loggers, changing the levels at startup time, and controlling what the log messages look like
  • launch_ros has various infrastructure for capturing messages from the processes it is supervising, and printing them to the tty or to files (or both)

Those pieces are all useful, but we lack a coherent story around logging and how it should work for end users. Ideally the outcome of this design document is that we identify gaps in the current infrastructure, and then work on filling those gaps. We should also revamp the logging documentation (https://docs.ros.org/en/rolling/Concepts/About-Logging.html and https://docs.ros.org/en/rolling/Tutorials/Logging-and-logger-configuration.html), and likely expand it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions