Local Web Access Log Analyzer
Summarize a bounded Apache common/combined or Nginx combined log locally, with exact known-byte totals and explicit parse diagnostics.
Loading tool…
How to use Local Web Access Log Analyzer
Summarize a bounded Apache common/combined or Nginx combined log locally, with exact known-byte totals and explicit parse diagnostics. Count supplied status codes, UTC days and parsed method tokens. Optionally group exact request paths after removing queries and fragments, while keeping unknown byte values distinct from zero.
- Provide optional local utf-8 access log, access log text: up to 200 kb when pasted.
- Choose the supported mode and run the tool. Review its assumptions and any reported errors.
- Copy the result or download a separate output; reset to clear the current form.
Good to know
- One UTF-8 source: 4 MiB as a local file or 200 KB when pasted, at most 10,000 physical records and 16,384 printable ASCII source characters per line. LF/CRLF and one optional final newline are accepted; no BOM, bare CR, compression, custom format, prefix fields or arbitrary regex parser.
- Fixed Common/Combined field order with literal single-space separators. Apache supports documented hexadecimal/C/quote/backslash byte escapes; Nginx combined supports default hexadecimal byte escaping. Nginx escape=json/none, Apache custom/localized dates and decoded fields that are not well-formed UTF-8 are outside this profile.
- Common-log dates use English month names, years 0001–9999, validated calendar components, seconds 00–59 and explicit numeric timezone offsets with hours 00–23/minutes 00–59. Converted UTC must remain in years 0001–9999. Leap seconds are refused; source order is not assumed chronological.
- Response byte tokens are - or canonical uint64 decimals. Known-byte sums use exact integers; a dash remains unknown. Status is retained as a three-digit source token without claiming that every such token is a valid HTTP response. Malformed request lines can still contribute valid status/byte records and receive an explicit unparsed count.
- At most 1,000 distinct status/day/method/path groups; only 100 invalid-line diagnostics are displayed while the full invalid count remains. Paths over 1,024 characters and unsupported request-target forms are counted as ungrouped instead of truncated or normalized.
- Raw client addresses, users, referrers, user agents and query values are excluded from the report. Optional paths may still reveal identities or sensitive resource names. Counts describe supplied log records, not unique people, verified bots, organic sessions, complete traffic or a server-health verdict.
- A dedicated Worker completes module preparation before ready, with a 10-second preparation limit and separate 2-second computation deadline. No server, request URL, executable command or additional local file is accessed.
- A separate JSON report is capped at 500,000 formatted characters; reduce the source when that bound is exceeded.
- Inputs are processed on this device and are not automatically saved or uploaded.
Common questions
Why is the total labeled known response bytes?
A dash does not provide a byte count. The tool adds only known uint64 values and reports how many records have unknown counts, so it does not silently turn missing data into zero or estimate total transfer.
Does this change my original input?
No. The tool returns a separate result. Review that output before using it in another application.
Keep going with related tools
All developer →Offline HAR Timing and Redaction Analyzer
Summarize HAR1.2 request phases or export an allowlisted copy without headers, cookies or bodies.
DeveloperHTTP Header Workbench
Parse ordered HTTP fields or export a validated JSON header list.
DeveloperURL Parser
Inspect HTTP(S) URL components, normalized hostnames, and repeated query parameters without visiting a link.
DeveloperLocal OTLP Trace Timing Review
Inspect actual supplied OTLP JSON spans with exact nanosecond timing, parent evidence and union-clipped child intervals.