Multi-Format Log Parser & Aggregator
A CLI tool that parses log files in multiple formats (plain text, JSON lines, syslog) into a unified internal representation, then aggregates and filters entries by time range, severity, and source. Learners practice format-specific parsers behind a common interface, std::regex, and command-line filtering options.
- Estimate
- ~8.5h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
std::regex · nlohmann/json
Project roadmap
- 01
Define the unified LogEntry model
~1hDesign a common struct holding timestamp, severity, source, and message regardless of input format.
- 02
Implement the plain-text and syslog parsers
~2.5hUse std::regex to extract fields from plain-text and syslog-formatted lines into LogEntry objects.
- 03
Implement the JSON-lines parser
~1.5hUse nlohmann/json to parse newline-delimited JSON log entries into the same LogEntry model.
- 04
Add filtering by time range and severity
~2hImplement CLI flags to filter parsed entries by date range and minimum severity level.
- 05
Add aggregation summaries
~1.5hProduce counts of entries per severity and per source, printed as a summary table.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack