WLPFO Log Highlighter
Syntax highlighting, inline metadata, source code navigation, and diagnostic tooltips for WLPFO logs in VS Code - plus a dynamic, general-purpose highlighter that works on any log format or file extension.
Built on top of Alexander Montero's Log Highlighter - modernized and extended with a large set of additional features, including the dynamic general-log highlighter described below.
Overview
WLPFO Log Highlighter adds syntax colorization, inline metadata descriptions, interactive hovers, and direct C++ source navigation to raw framework and transaction logs, and doubles as a format-agnostic highlighter for everyday application, system, and service logs.
Screenshots
Internal Tool
Syntax Highlighting & Dump Decoding
Full-document colorization with whole-line error markers, scrollbar ticks, and inline transaction dump decoding
|
Highlighted Transaction Tracks
Color-coded transaction tracks with inline message data views
|
Whole-Line Error / Decline Highlighting
Errors and declines colorize the entire row and scrollbar margin for fast scanning of long logs
|
Source Navigation
Ctrl+Click log properties, members, and indices to jump to their C++ declarations, with clickable source links
|
Enum Definition Hover
Hover a value to resolve its enum definition straight from the source tree
|
Function Documentation Hover
Pull the exact C++ header declaration with its Doxygen comments and proc-function docs inline
|
Supported logs
- All WLPFO framework logs - authorizer, stream/supervisor (
sv_*), line-gateway (ln_*), system_log, mediator, overseer, scheduler, adyton_driver, and the rest - get format-aware parsing, semantic colorization, severity markers, source navigation, and hovers.
- Any other log or file - a dynamic, format-agnostic highlighter colors timestamps, levels, IPs/UUIDs/URLs, paths,
key=value, JSON, numbers, and quoted strings. No setup or language selection needed.
Features
Syntax Highlighting
- Framework Code Elements: Colorizes classes, member variables (
.mField), method calls (::method), map indices ([KEY]), maps, parameters, hex blobs, and timestamps.
- Transaction Statuses: Highlights approval and decline tracking profiles (
APP*, DEC*).
- Whole-Line Markers: Colors entire lines and scrollbar margins for errors, declines, warnings, and processing exceptions.
- Dynamic (Any-Format) Highlighting: For non-WLPFO logs, applies rich format-agnostic colorization that works on any log type and file extension - see below.
Dynamic / General Log Highlighting
Any log that isn't a WLPFO dump is highlighted by a format-agnostic engine - no setup or language selection needed. It recognizes and color-codes:
- Timestamps - ISO, syslog, Apache, Spark, Android, HDFS and more, with date, time and zone styled separately
- Severity -
ERROR / WARN / INFO / DEBUG / TRACE, with whole-line markers, scrollbar ticks and Next/Previous-Error navigation
- Addresses - IPv4, IPv6, MAC, UUID, email, and URLs (host / port / path / query)
- Structure - Unix & Windows paths,
key=value / key: value pairs, process[pid], and numbers
- Code - class & member access, method calls, operators (
==, ->, =>, ::, …), annotations (@Override), and language keywords
- Identifiers - dotted class names,
[thread] / [logger] context, and snake_case ids
- JSON, quoted strings, booleans, and REST verbs as colored badges
- Theme-aware - colors adapt to your active editor theme, and plain text always uses the theme's default foreground
The same engine also enriches native WLPFO logs, filling in addresses, paths, ids and more without overriding any of their dedicated coloring. Toggle it with wlpfoLog.features.genericLog; the main colors are configurable under wlpfoLog.colors.*.
Ghost Text (Inline Descriptions)
- Decorator Names: Displays resolved decorator classes and usage flags at the end of header lines.
- System ID Mapping: Looks up raw numeric IDs (nodes, protocols, peers, card types, issuers) against registries and prints their definitions inline.
Smart Hovers
- SQL Query Formatting: Identifies SQL statements, replaces bind variables (
:f1) with their runtime values, and pretty-prints the query structure for readability.
- Hex Decoding: Decodes hex strings on hover to show structural ASCII grids, formatted JSON trees, or pretty-printed XML blocks.
- Source Snippets: Extracts and displays the exact C++ header declaration and its preceding Doxygen comments directly inside the tooltip.
Source Navigation
- Go to Definition: Supports
Ctrl + Click navigation from log properties, enums, functions, and tags directly to their declarations in the C++ source tree.
- Document Links: Converts relative file references (
../../sources/...cpp, NN) in stack traces into clickable links that jump to the exact file and line number.
- Extract Transaction:
Ctrl + Click a transaction id (or use the Extract button in the transaction hover) to open the whole transaction - every line from its first to last occurrence - in a new read-only tab. Powered by an O(1) transaction index, so it stays instant even on multi-gigabyte logs with millions of transactions.
- Error Navigation: Jump between errors, declines, and exceptions with Next / Previous Error (
F8 / Shift + F8, or the toolbar arrows). By default a run of consecutive error lines counts as a single stop (block-by-block), so multi-line errors don't slow you down; switch to line-by-line with navigation.groupConsecutiveErrors.
- Breadcrumbs: The breadcrumb bar shows the enclosing context - transaction id › path › function, or transaction id › decorator inside a dump - for every line, including dump lines, separators, and id-less sub-operation traces, so you always know which transaction and step you're on anywhere in a huge log. Paths, functions and decorators get distinct icons.
- Code Folding: Provides folding blocks for transaction dumps and decorator sections to aid scrolling through long log sequences.
- CodeLens Buttons: Adds contextual action shortcuts directly onto
txn_doer tracks and transaction separators.
Built for huge, continuously growing logs. Regardless of file size - megabytes or gigabytes, static or actively tailing - the extension never parses the whole document up front. It dynamically analyzes only the region you're currently viewing and parses further on demand as you scroll, keeping highlighting, hovers, and navigation instant even on massive files.
The result: faster than the original Log Highlighter while doing considerably more - sub-token colorization, hovers, source navigation, folding, and dynamic general-log highlighting, all without the slowdown that comes from eagerly scanning an entire log.
File Associations
| Pattern |
Description |
*.log |
Standard system execution tracks |
*.out |
Console outputs and pipeline redirect files |
*.trace |
Execution trace logs |
*.wlpfo_log |
Native core framework log files |
| Content Matching |
Automatically detects WLPFO framework headers and common log formats (ISO / syslog / Apache / Spark / Android / HDFS and [LEVEL] conventions) to switch any plaintext file - regardless of extension - into the highlighter |
If a file doesn't switch automatically, run WLPFO: Set Language to WLPFO Log from the command palette.
Configuration Settings
Configure extension behavior via the VS Code Settings UI (wlpfoLog.* namespace):
| Key |
Description |
Default |
features.semanticColoring |
Colorizes classes, properties, variables, and tags |
true |
features.ghostText.decorators |
Appends resolved decorator attributes to line ends |
true |
features.ghostText.idMeanings |
Prints descriptive labels next to recognized registry IDs |
true |
features.hovers |
Enables code snippets, SQL formatting, hex decoding, and documentation tooltips |
true |
features.goToDefinition |
Enables Ctrl + Click shortcuts to source code assets |
true |
features.documentLinks |
Converts log text file paths into clickable code links |
true |
features.extractTransaction |
Ctrl + Click a transaction id (or the hover Extract button) to open its whole span in a new tab |
true |
features.codeLens |
Displays inline shortcut buttons above transaction lines |
true |
features.folding |
Generates folding zones for long trace blocks |
true |
features.genericLog |
Dynamic general-log highlighting for any format (timestamps, levels, addresses, paths, code, …) |
true |
features.autoDetect |
Automatically switches log files to the WLPFO highlighter mode |
true |
colors.* |
Customize highlight colors (class, member, level, dateGeneric, timeGeneric, key, path, …) |
- |
highlight.errors |
Highlights the full row and scrollbar tracking line on failures |
true |
highlight.warnings |
Highlights the full row on system warnings |
false |
highlight.exceptions |
Highlights the full row on processing exceptions |
false |
navigation.groupConsecutiveErrors |
Next / Previous Error skips block-by-block (consecutive error lines = one stop); off = line-by-line |
true |
Installation
From VSIX Package
code --install-extension wlpfo-log-highlighter-<version>.vsix
Building From Source
npm install -g @vscode/vsce
cd wlpfo-log-highlighter
vsce package --no-dependencies
You Might Also Like
WLPFO Items Highlighter - a companion extension from the same author. If you work with WLPFO logs, pair this with the Items Highlighter for a complete WLPFO workflow in VS Code.
code --install-extension JesviJonathan.wlpfo-items-highlighter
License
Distributed under the MIT License.
| |