Log panel
Display and filter Log messages from topics.
Supported messages
To use this panel, your data source must provide messages conforming to one of the following supported schemas.
Log
| framework | schema |
|---|---|
| ROS 1 | rosgraph_msgs/Log |
| ROS 2 | rcl_interfaces/msg/Log |
| Custom | foxglove.Log |
Settings
General
| field | description |
|---|---|
| Topic | Topic to display log messages from |
| Log level | Minimum severity of messages to display – always enforced, even if the node name is selected or the message text matches the search filter |
| Font size | Font size for the log text display |
| Preload mode | When enabled, loads all log messages upfront for recorded data sources. If the recording contains more than 20,000 messages, the panel falls back to live mode. |
Namespaces
Lists namespaces (i.e. node names) that have log messages to display. Toggle individual namespaces.
Visibility
Customize which parts of each rendered log line are shown. Source location is off by default; every other toggle defaults to on.
Bracketed segments concatenate directly with no spaces between them. A single : is emitted between the metadata block and the message body whenever any prefix segment produced output, and is omitted when nothing did — either because every toggle is off or because the toggled-on segments came from fields the source message didn't populate.
| field | description |
|---|---|
| Level | Show the severity level (e.g. [ INFO]) for each log message |
| Date | Show the date as part of the timestamp. Listed for TOD, 24h, and RFC; hidden for SEC (a raw sec.nsec value has no date) |
| Time | Show the timestamp for each log message. In SEC format this toggles the entire [sec.nsec] value; in TOD/24h/RFC it toggles just the time-of-day portion and the date and timezone components (when listed) still render |
| Timezone | Show the timezone as part of the timestamp. Only listed when the global Time format includes a timezone (TOD, 24h, or RFC) |
| Name | Show the node name (e.g. [/some/node]) for each log message |
| Source location | Show the source file and, when available, line number (e.g. [foo.cpp:42]). Messages with a populated file but line == 0 — common for ROS publishers that don't set the field — render as [foo.cpp] rather than [foo.cpp:0] |
Example render with the default toggle states and the global Time format set to SEC:
[ INFO][1700000000.000000000][/some/node]: this is a log message
The same line with Source location also enabled:
[ INFO][1700000000.000000000][/some/node][src/foo.cpp:42]: this is a log message
Timestamp navigation
When viewing recorded data with preload mode enabled, the Log panel provides interactive timestamp navigation:
- Click a log message to seek playback to that message's timestamp
- Hover over a log message to preview that time on the timeline
- Seek from another panel or the timeline, and the Log panel scrolls to the closest message at the current time
- Play the data to automatically scroll and highlight the relevant message at the current timestamp
The scrollbar displays colored markers indicating the positions of warning (yellow) and error (red) log messages, allowing quick navigation to important entries.
Controls and shortcuts
Filter incoming messages' text by a comma-separated list of filter terms. These terms will execute as an OR – i.e. it will return messages that match any of the terms.
A floating scroll-to-bottom button appears when you scroll away from the bottom of the log, allowing quick return to the latest messages.