Free Apache Log Analyzer
Drop in your Apache access log and get a readable dashboard back in seconds. Your file never leaves your browser.
What it does with your access log
Apache writes a line for every request it handles, and after a week that file is thousands of lines long. Reading it by hand tells you almost nothing. Paste it here and you get the stuff you actually wanted to know: how much traffic came through, which pages got hit the most, what status codes your server returned, and which requests were bots instead of people. No grep, no awk, no spinning up a log server.
How it works
- Grab the access log off your server, or open the copy you already have locally.
- Paste the text in, or drag the file onto the analyzer on the home page.
- Read the dashboard. Traffic, top pages, status codes, bandwidth, and bots all land in one view.
Where Apache keeps the access log
If you are not sure where your log lives, it depends on the distribution. On Debian and Ubuntu it is usually at /var/log/apache2/access.log. On RHEL, CentOS, and Fedora it is /var/log/httpd/access_log. If someone set a custom path, the CustomLog directive in your config decides it. Find it with:
grep -r CustomLog /etc/apache2/ /etc/httpd/ 2>/dev/nullYour logs stay on your machine
This is the part most tools get wrong. Access logs hold visitor IP addresses and the exact URLs people requested, so shipping them off to someone else's server is a real privacy problem. Here the parsing runs in your browser with JavaScript. Nothing is sent anywhere, there is no account to create, and closing the tab wipes everything. You can open your network tab and check.
Formats it reads
It handles the Combined Log Format (the default on most Apache installs) and the older Common Log Format. A combined line looks like this:
127.0.0.1 - - [10/Oct/2000:13:55:36 -0700] "GET /page HTTP/1.1" 200 2326 "https://example.com" "Mozilla/5.0"Zero-byte responses that Apache logs as a dash are handled correctly, so redirects and 304s do not get dropped. If you run nginx or Caddy as well, those work too.
What the dashboard shows
- Requests over time, so spikes and quiet hours are obvious at a glance.
- Top URLs and top client IPs, which tells you what is popular and who is hitting you hardest.
- A status code breakdown, so a wave of 404s or 500s stands out immediately.
- Bandwidth totals, useful when you are chasing a traffic bill.
- Referrers, browsers, and operating systems pulled from the user agent.
- Bot versus human traffic, plus a separate list of requests that look like attacks.
Bots and suspicious traffic
Most of what hits a public server is not a human. The analyzer tags known crawlers (Googlebot, Bingbot, the AI scrapers, SEO tools) and separates them from real visitors, so your numbers are not inflated. It also flags the obvious probes: WordPress login scans, path traversal, SQL injection attempts, requests for your .env file. For the full method, the bad bot detection guide walks through it, and the status code reference explains what each response in your log means. Both apply to Apache just as well as nginx.
Apache log analyzer FAQ
Is it free?
Yes. No account, no ads, and no limit on how many times you use it.
Does my log get uploaded anywhere?
No. Parsing happens in your browser, which is why it is safe to run on production logs full of real visitor IPs.
Which Apache log formats are supported?
Combined and Common, the two Apache defaults. A custom LogFormat still reads fine as long as the line starts with the usual IP, timestamp, and request.
Can it handle a large log file?
It comfortably handles logs with hundreds of thousands of lines. Since everything runs locally, speed depends on your own machine, not a shared server.