Error, warn, info, debug counts with percentages. Activity timeline grouped by hour. Top IPs and status codes ranked by volume.
🎨
Color-Coded Severity
Each log row is visually marked: red border for errors, yellow for warnings, blue for info, green for debug and trace.
🔎
Full-Text Search
Search across messages, sources, and timestamps in real time. Matching terms are highlighted directly in the log table.
🧩
Multi-Filter
Combine level, IP address, HTTP status code, and keyword filters simultaneously for precise narrowing.
📈
Activity Timeline
Stacked bar chart shows error/warn/info/debug distribution across hours so you can spot incidents visually.
⬇️
Download Filtered
Export the filtered view as a .txt file with timestamp, level, source, and message columns for further processing.
🔒
100% Private
All parsing runs in your browser with JavaScript. Log data is never sent to any server or stored anywhere.
FAQ
Apache Combined Log, Nginx access log, syslog, JSON Lines (one JSON object per line), Log4j/Logback, Python logging, Docker/Kubernetes container logs, and a generic catch-all pattern that handles most timestamped + level-prefixed formats.
Yes. The entire parser runs as JavaScript in your browser. No data is transmitted to any server. You can even disconnect from the internet before uploading a sensitive log file.
Files up to a few hundred MB typically parse in 1–3 seconds on modern hardware. Very large files (500 MB+) may take a few seconds longer. The browser tab may warn about memory for gigabyte-scale files — split those with a command-line tool first.
HTTP status codes are mapped to levels: 5xx → ERROR, 4xx → WARN, 3xx → INFO, 2xx → DEBUG. For other formats, the level keyword (ERROR, WARN, INFO, DEBUG, TRACE) is extracted directly from the line.
The search box matches a single string (including spaces). For AND-style filtering, combine the text search with the Level, IP, and Status filters simultaneously — all filters are applied together.