Guardo Log Visualizer
Guardo is a VS Code extension to visualize structured log files with advanced filtering, search, and trace plotting capabilities.
Features
- Unified Visualize/Trace Panel: Toggle between log table and time-vs-node trace plot with a single click. Both views share filters for synchronized visualization.
- Log Table Visualizer: View logs in a searchable, filterable table with node and level filters. Sticky search bar stays visible while scrolling.
- Log Trace View: Visualize log events as a time-vs-node trace plot. Each node is a row, and log events are shown as colored dots by severity. Hover for detailed tooltips with timestamp, node, and message.
- Path View (YAML): Visualize
poses paths from .yaml/.yml files with XY path, start/end markers, optional speed coloring, orientation markers, and trigger points.
- Vehicle Footprint: Visualize vehicle size and orientation as it travels along the path. Toggle footprint on/off and adjust width (1.0 = 1 unit in world coordinates, scale-invariant with zoom).
- Advanced Window Controls: Focus on trajectory subsets with Start/Current/Slider controls. Scroll with mouse wheel to step through points while preserving window size.
- Auto-Open Visualizations: Click a
.csv file to auto-open the Visualizer; click a .yaml/.yml file to auto-open Path View.
- Keyboard Shortcuts:
Ctrl+Shift+Y to open Visualizer on .csv or toggle Visualizer/Source on .yaml/.yml
Ctrl+Shift+T to open Trace view on .csv
- Performance Optimized: Handles large log files efficiently with WebGL rendering, compact tooltips, and X-only zoom.
- Explorer Context Menu: Right-click files in Explorer for quick access to visualizations.
Additional editing features
- Map overlay: Overlay a map onto the path in the background. This will make it easier to edit the path. Clicking the Load Map button allows you to select the PNG file containing the map. It is very important that an .ini file containing the origin coordinates is located in the same folder as the PNG file.
- Single point movement: Select an individual point and move it by changing its XY coordinates. The coordinates can be changed also using the Edit Point row.
- Single point deletion: Delete a single point from the path. To do this, select the point with the mouse and click the Delete button.
- All points deletion: You can delete all points from the path by clicking the Delete All button.
- Adding start/end path points: You can add points to the start or end of the path simply by selecting one of the two modes from the top drop-down menu and clicking on the desired position.
- Original path backup: The original path is automatically saved as a separate file in the <path_name>.backup.yaml format.
Usage
Quick Start
- Open a log file (e.g.,
log.csv) in VS Code. Visualizer auto-opens automatically.
- Open a path file (e.g.,
path.yaml) in VS Code. Path View auto-opens automatically.
- Or use keyboard shortcuts:
Ctrl+Shift+Y on .csv to open Visualizer; on .yaml/.yml to open Path View
Ctrl+Shift+T on .csv to open Trace view
- Or right-click files in the Explorer for context menu options.
In the Visualizer Panel
- Toggle between table and trace views using the button at the top.
- Use the sidebar filters to filter by node name or log level. Filters apply to both views.
- Click View Source to see the original
.csv file.
- Search with the sticky search bar that remains visible while scrolling.
In the Path View Panel
- Use Start, Slider, and Current controls to focus on trajectory segments:
- Start: Sets the window start index
- Slider: Shows current index and position within window
- Current: Displays the last visible point
- Mouse wheel zoom: Scroll to zoom in/out on the visualization.
- Check Speed colors, Orientation, Triggers, and Footprint to enable visualization options:
- Speed colors: Color-code trajectory by speed (blue=slow, red=fast)
- Orientation: Show vehicle heading markers
- Triggers: Highlight marked trigger points
- Footprint: Display vehicle footprint shadow along path
- Footprint Width: When footprint is enabled, adjust the width value. Default is 1.0 (1 unit in world coordinates). The width scale remains constant regardless of zoom level.
- Click View Source to edit the original
.yaml file in the editor.
As concerns the editing part:
- Select the working Mode from the top-right drop-down menu:
- View: view-only mode
- Edit: where you can select and move points
- Add End: add a point to the end of the path
- Add Start: add a point to the start of the path
- Click Load Map button to overlay a map on the path. A window will open prompting you to select the map.png file. This file must be located inside a folder that also contains a map.ini file with the origin coordinates.
- Select a point of the path with the cursor and click Delete to delete the point.
- Click on Delete all to delete all the points of the path.
- To move a point, simply click on the path point and drag and drop it to the desired position.
The original path is saved in the .backup.yaml format in the same source folder.
The path view expects a YAML object with a poses array:
poses:
- position: [x, y, z]
speed: 1
orientation: [x, y, z, w] # optional
trigger: 2 # optional
Visualization options:
- Speed colors: Color each segment with a blue-to-red gradient from min to max speed (blue=slow, red=fast).
- Orientation: Render heading markers from quaternion; when missing, heading is estimated from local segment direction.
- Triggers: Highlight points where the
trigger field matches.
Example of a map.ini file:
[MAP_IMAGE]
FILE = map.png
RESOLUTION = 0.01
OCCUPIED_TH = 50
FREE_TH = 30
NEGATE = 0
[MAP_ORIGIN]
LATITUDE = -11.1558503
LONGITUDE = -6.800156117
YAW = 0
Header line (comma-separated), data lines (backtick- or comma-separated):
stamp,level,name,msg,file,function,line
1712592543310108072`30`Elastic Follow Planner`[ElasticFollowPlanner] ...
The extension auto-detects delimiters and columns.
Changelog
[1.3.1] - 2026-04-29
Added:
- Vehicle footprint visualization toggle in Path View
- Adjustable footprint width parameter (default 1.0, respects world coordinates)
- Automatic duplicate point detection in footprint calculation
Fixed:
- View Source no longer triggers auto-reopen ping-pong effect
- Footprint polygons no longer show fold artifacts at sharp angles
- Skip duplicate/coincident points when calculating path perpendiculars
Changed:
- Footprint rendering optimized: from N polygons (one per segment) to single efficient polygon
- YAML auto-open validation now requires all specific path metadata fields (frame_id, poses, etc.)
[1.3.0] - 2026-04-29
Added:
- Unified Visualize/Trace panel with toggle button; both views share filters for synchronized visualization
- Auto-open on file click: Visualizer auto-opens for
.csv, Path View for .yaml/.yml
- Sticky search bar in Visualizer that remains visible while scrolling through logs
- Mouse wheel scrolling in Path View to step through points while preserving window size
- Keyboard shortcut
Ctrl+Shift+Y to open/toggle Visualizer (YAML/CSV) or Path View (YAML)
- Keyboard shortcut
Ctrl+Shift+T to open Trace view on .csv files
- View Source button in both Visualizer and Path View panels
Fixed:
- Auto-open listener now responds to both file clicks and editor tab switches
- Keyboard shortcuts now correctly respond to file extensions instead of language IDs
- Path View window controls now provide clear Start/Slider/Current model
Changed:
- Path View window control UI redesigned: Start textbox + Range slider + Current display
- Combined TracePanel and VisualizerPanel into single unified panel with mode toggle
[1.1.0] - 2025-06-09
- Log Trace View: time-vs-node plot, colored arrows, compact tooltips, X-only zoom, context menu.
- Performance improvements for large logs.
- Unified parsing logic for both views.
[1.0.0] - Initial release
- Log table visualizer with filtering and search.
License
MIT License
Copyright (c) 2025 Guardo Extension Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or # MIT License
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
| |