Zero Signup ToolsFree browser tools

Developer Tools

Access Log Parser

Paste Apache or NGINX access logs and get a structured breakdown with status codes, top IPs, top paths, user agents, and CSV or JSON export.

Access log parser

One log line per row. Supports Apache Combined, Apache Common Log (CLF), NGINX combined, and a custom LogFormat string. Parsing runs in your browser; nothing is uploaded.

Try Apache Combined, NGINX combined, then Common Log Format on each line.

Total lines

10

Parsed

10

Parse errors

0

Unique IPs

6

Unique status codes

5

Total bytes

26.3 KB

26,936 bytes

Average response size

2.63 KB

2,694 bytes

Time range

Jun 18, 2026, 10:14:02 UTC to Jun 18, 2026, 10:14:15 UTC

2026-06-18T10:14:02.000Z 2026-06-18T10:14:15.000Z

Status class distribution

1xx Informational

0

2xx Success

6

3xx Redirect

2

4xx Client error

1

5xx Server error

1

Other / unparsed

0

Top status codes

StatusCount
2006
3021
3041
4041
5001

Top IPs

IPCount
198.51.100.73
203.0.113.423
127.0.0.11
198.51.100.81
2001:db8::421
66.249.66.11

Top paths

PathCount
/pricing2
/api/health1
/api/users/1231
/api/users/4561
/dashboard1
/index.html1
/login1
/missing1
/robots.txt1

Top methods

MethodCount
GET9
POST1

User-agent breakdown

FamilyCount
Edge3
Chrome2
Safari2
curl1
Googlebot1
Other1

Parsed lines (showing 10 of 10)

#IPTimeMethodPathStatusBytesUA
1127.0.0.12026-06-18T10:14:02.000ZGET/index.html2002,326Safari
2203.0.113.422026-06-18T10:14:04.000ZGET/api/users/123200512Chrome
3198.51.100.72026-06-18T10:14:05.000ZPOST/login3020Edge
4198.51.100.72026-06-18T10:14:06.000ZGET/dashboard20014,721Edge
566.249.66.12026-06-18T10:14:07.000ZGET/robots.txt200220Googlebot
6198.51.100.82026-06-18T10:14:08.000ZGET/missing404162curl
7203.0.113.422026-06-18T10:14:09.000ZGET/api/users/456200487Chrome
82001:db8::422026-06-18T10:14:11.000ZGET/pricing2008,432Safari
9203.0.113.422026-06-18T10:14:13.000ZGET/api/health50076Other
10198.51.100.72026-06-18T10:14:15.000ZGET/pricing3040Edge

Format directives

  • %h client IP / $remote_addr
  • %u authenticated user / $remote_user
  • [%t] request time in CLF format / [$time_local]
  • "%r" request line (method, path, protocol) / "$request"
  • %>s final HTTP status / $status
  • %b response bytes / $body_bytes_sent
  • "%{Referer}i" and "%{User-Agent}i" request headers

What to watch for

  • Bursts of 4xx status codes can indicate broken links, scrapers, or login probing.
  • A growing share of 5xx status codes points at upstream failures or capacity problems.
  • A handful of IPs serving most of the traffic often means a bot or CDN warming the cache. Cross-check the user agent.
  • An empty referer column for browser traffic is normal for typed URLs and bookmarks; it is suspicious for deep-link API calls.

How to use

  1. Paste log lines into the input box, or click Load sample log to see how Apache Combined output renders.
  2. Pick a log format: Auto-detect handles mixed Apache and NGINX combined logs, or choose Apache Common, Apache Combined, or NGINX combined explicitly.
  3. If your server uses a custom LogFormat, choose Custom and paste the format string (for example, $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent").
  4. Review the summary cards for total bytes, status class distribution, and time range, and scan the top tables for the IPs, paths, and user-agent families generating the traffic.
  5. Copy the parsed rows as CSV or JSON to move them into a spreadsheet or notebook. Lines that fail to match are listed at the bottom with the reason so you can adjust the format.

About this tool

Access Log Parser turns raw web server logs into a structured, searchable view in your browser. It speaks the formats that ship out of the box with Apache and NGINX: the Common Log Format (%h %l %u %t "%r" %>s %b), the Combined Log Format that adds Referer and User-Agent, and the NGINX combined preset built from $remote_addr, $time_local, $request, $status, $body_bytes_sent, $http_referer, and $http_user_agent. Auto-detect runs Combined, NGINX, and CLF against each line so a mixed paste does not need pre-sorting. Custom mode compiles a subset of Apache LogFormat and NGINX log_format directives (including %{Referer}i, %{User-Agent}i, %>s, %b, %D, $body_bytes_sent, and friends) into a regex on the fly, so you can paste the exact LogFormat string from your httpd.conf or nginx.conf and parse whatever it produces. Each parsed row exposes the client IP, the ident and authenticated user fields, the original CLF timestamp plus a normalized ISO UTC timestamp, the request method, path, and protocol, the HTTP status code (color coded by class), the response size in bytes, the referer, and the user agent (with a built-in family bucket that recognizes Chrome, Edge, Safari, Firefox, curl, Googlebot, Bingbot, and other common crawlers). On top of the per-row table sits a fleet-wide summary: total lines, parsed count, parse errors, unique IPs, unique status codes, total bytes served, average response size, the parsed time window, a status class distribution across 1xx, 2xx, 3xx, 4xx, 5xx, and the top status codes, IPs, paths, methods, and user-agent families across the whole input. The parsed rows export as JSON or CSV with a single click so the same data can move into a spreadsheet, a notebook, or a follow-up SIEM query. Useful when grep is not enough: triaging a traffic spike, hunting for the path that is generating 5xx errors, spotting the IP behind a 4xx flood, finding the user agent that hammers an endpoint, or just turning a confusing log paste into a clean table. Nothing is uploaded; parsing runs entirely on the device.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsDeveloper Tools