Home › Developer Tools › Access Log Analyzer

Access Log Analyzer

Drop an Apache or Nginx access.log (plain or .gz) to get an instant traffic report: requests, unique visitors, bandwidth and error rate, a traffic-over-time chart split by status class, and top lists of URLs, IPs, 404s, referrers, browsers and bots. Your server logs are processed on your own device.

Last updated:

Traffic over time

Status codes

Requests by hour of day

Advertisement
Advertisement

How to use the Access Log Analyzer

  1. Get your log: Apache usually writes /var/log/apache2/access.log (or httpd/access_log), Nginx /var/log/nginx/access.log. Download it, including rotated .gz files.
  2. Drop the file(s) on the box. Several files are combined into one report. A sample log is analyzed until you do.
  3. Read the summary and chart; hover or tap bars to see the exact counts per interval.
  4. Narrow it down with the filters, for example only 5xx errors, no bots, or one URL or IP.
  5. Explore the top lists in the tabs and download a table or the full report as CSV.

Anatomy of a combined log line

203.0.113.7 - alice [14/Mar/2026:09:30:05 -0500] "GET /shop/?page=2 HTTP/2.0" 200 18234 "https://www.google.com/" "Mozilla/5.0 (iPhone; …) Safari/604.1"

FieldExampleApacheNginx
Client IP203.0.113.7%h$remote_addr
Identity, user-, alice%l %u- $remote_user
Time with offset[14/Mar/2026:09:30:05 -0500]%t[$time_local]
Request line"GET /shop/?page=2 HTTP/2.0""%r""$request"
Status code200%>s$status
Response size (bytes)18234%b$body_bytes_sent
Referrer"https://www.google.com/""%{Referer}i""$http_referer"
User agent"Mozilla/5.0 …""%{User-Agent}i""$http_user_agent"

What to look for in the report

  • Rising 5xx bars in the traffic chart point to crashes, timeouts or an overloaded upstream (502/504 behind Nginx). Filter on 5xx errors to see which URLs fail.
  • 404 lists show broken internal links, old URLs that need a 301 redirect, and missing assets such as favicons or images.
  • One IP with hundreds of 404s on paths like /wp-login.php or /.env is an automated scanner. It is usually harmless if those files do not exist, but it can be rate-limited or blocked.
  • Bot share: search engines and SEO crawlers often make up a large part of raw requests. Hide bots to see human traffic, and check robots.txt if a single crawler dominates.
  • Heavy URLs: sort the URL list by bandwidth (download the CSV) to find oversized images or downloads worth compressing or caching.
  • Hour of day shows when your visitors are active, which helps schedule deployments and backups for quiet hours.

Frequently asked questions

Which log formats are supported?

The Common Log Format (host ident user [time] "request" status bytes) and the Combined Log Format, which adds the referrer and user agent. These are the defaults for Apache (LogFormat combined) and Nginx (log_format combined). Lines with an extra virtual host field at the start (vhost_combined) are also read. Custom formats and JSON logs are reported as unparsed lines.

Is my log file uploaded?

No. The file is read in chunks by JavaScript in this tab and only summary counts are kept in memory. IP addresses, URLs and user agents never leave your computer, which matters because access logs contain personal data.

How big a log can it handle?

Files of a few hundred megabytes (a few million lines) work in a desktop browser; the file is streamed so it is never held as one big string. Gzip-compressed logs are decompressed on the fly in current browsers. For multi-gigabyte logs, split them by day first.

What counts as a unique visitor?

Each distinct client IP address. That is the usual approximation in log analysis, but several people behind one office or mobile network share an IP, and one person may use several, so treat it as an estimate rather than a count of people.

How are bots detected?

From the user agent: known crawlers such as Googlebot, bingbot, AhrefsBot and GPTBot, monitoring services, and scripts like curl, wget or python-requests, plus any agent containing words such as bot, crawler or spider. Bots that pretend to be a normal browser cannot be told apart from the user agent alone.

Why is the bandwidth lower than my hosting statistics?

The bytes field in the combined format is the size of the response body only (Apache %b, Nginx $body_bytes_sent). Headers, TLS overhead and responses served by a CDN in front of your server are not included, and 304 Not Modified responses have a body size of 0.

What time zone is used in the charts?

The time zone written in the log lines themselves, for example -0500. The chart labels and the hour-of-day chart use that offset, so peaks line up with the server's local clock.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Log File ViewerOpen huge log files with level colors, regex and time filters, JSON pretty-print and tail -f.User Agent ParserSee your user agent and parse any UA string into browser, OS, engine and device.HTTP Status CodesSearch every HTTP status code with plain-English meanings, causes, fixes and RFC references.Regex TesterTest and debug regular expressions live.QR Code GeneratorMake QR codes for links, Wi-Fi, email and more.Barcode GeneratorCreate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes as PNG or SVG.UUID GeneratorGenerate UUID v4 and v7 / GUIDs in bulk and copy or download them.Schema Markup Generator (JSON-LD)Create JSON-LD structured data for FAQ, Product, Article and more.Htaccess & Nginx Redirect GeneratorBuild 301 redirects for .htaccess, Nginx and Netlify or Cloudflare _redirects.Fake Data GeneratorGenerate mock data as JSON, CSV or SQL.Random String GeneratorGenerate secure random strings and tokens in bulk with any length and character set.API Key GeneratorCreate secure API keys and secrets with prefixes, checksums and SHA-256 hashes for storage.MIME Type LookupFind the MIME type for any file extension, or the extensions for a MIME type, in 400+ entries.Cron Expression GeneratorBuild crontab schedules visually, read them in plain English and see the next run times.URL Slug GeneratorTurn titles into clean, SEO-friendly URL slugs: accents, stop words, separators and bulk lines.JSON Schema GeneratorTurn sample JSON into a draft 2020-12 JSON Schema with types, required fields and formats.Gitignore GeneratorBuild a .gitignore from 50+ templates for languages, frameworks, IDEs and OS, merged and deduped.License GeneratorCreate a LICENSE file for MIT, Apache, GPL, BSD, ISC, MPL or Unlicense with your name and year.ULID GeneratorGenerate sortable ULIDs and UUID v7 in bulk, monotonic option, and decode their timestamps.Htpasswd GeneratorCreate .htpasswd entries with bcrypt, APR1-MD5 or SHA-1 for Apache and Nginx basic auth.Placeholder Image GeneratorCreate placeholder images in any size, color and text as PNG, JPG, WebP, SVG or data URI.Ads.txt GeneratorCreate or validate ads.txt and app-ads.txt files: seller lines, cert IDs and variables.Docker Run to Compose ConverterConvert docker run commands to docker-compose.yml, or a compose file back to docker run.Dockerfile GeneratorGenerate a production Dockerfile and .dockerignore for Node, Python, Go or a static nginx site.HTML Boilerplate GeneratorTick the options you need and get a clean HTML5 starter template with meta, OG tags and CSS reset.JSON to Zod SchemaInfer a Zod (or Yup) schema from sample JSON with optional, nullable and z.infer types.Linux Commands Cheat SheetSearchable Linux and bash command reference with flags explained, examples and copy buttons.LLMs.txt GeneratorBuild an llms.txt file for AI crawlers: summary and link sections, import from your sitemap.Nano ID GeneratorGenerate secure Nano IDs with custom alphabet, length and count, plus a collision calculator.Nginx Config GeneratorBuild an nginx server block: static site, SPA, reverse proxy or PHP, with SSL, gzip and redirects.OpenAPI / Swagger ViewerView OpenAPI 2/3 JSON or YAML as interactive API docs with validation and an endpoint list.package.json GeneratorFill a form and get a valid, npm-ready package.json with scripts, dependencies and checks.PKCE Code Challenge GeneratorGenerate an OAuth 2.0 PKCE code_verifier and S256 code_challenge, build auth URLs, verify pairs.README GeneratorFill in a form and get a polished README.md with badges, install, usage and license, live preview.Regex GeneratorBuild regular expressions visually from blocks or presets (email, date, phone) and test them live.Commit Message GeneratorBuild Conventional Commit messages with type, scope, body, breaking change and issue refs.Database Schema DesignerDesign tables and relationships visually, then export SQL for MySQL, PostgreSQL or SQLite.Docker Compose GeneratorBuild a docker-compose.yml with a form: services, ports, volumes, env, healthchecks and presets.Google Search Query BuilderBuild advanced Google searches with site:, filetype:, intitle:, exact phrases and date operators.HowTo Schema GeneratorCreate HowTo JSON-LD with steps, tools, supplies, total time and cost, then copy it.Htaccess GeneratorBuild an Apache .htaccess file: HTTPS, www, gzip, caching, error pages, IP blocks, hotlinks.HTML Email Template BuilderDrag and drop blocks to build a responsive, table-based HTML email with inline styles.Organization Schema GeneratorCreate Organization JSON-LD with logo, URL, contact points, address and social profiles.PIN GeneratorGenerate random 4, 6 or 8-digit PINs that avoid sequences, repeats, dates and common PINs.Product Schema GeneratorBuild Product JSON-LD with price, availability, brand, GTIN, ratings and reviews.Question Keyword GeneratorFind the questions people ask about a topic, grouped by who, what, why, how, can and more.Recipe Schema GeneratorCreate Recipe JSON-LD with ingredients, steps, prep and cook times, nutrition and ratings.Security Headers GeneratorPick HSTS, CSP, frame, referrer and permissions options and get Apache, Nginx, Netlify or Cloudflare config.SKU GeneratorBuild consistent SKUs from brand, category, size and color, then export every variant as CSV.Typography Scale GeneratorBuild a modular type scale from a base size and ratio, then copy CSS variables or a Tailwind config.WordPress Salt GeneratorGenerate fresh WordPress security keys and salts for wp-config.php, .env or Docker in one click.ANSI Color Code GeneratorStyle terminal text with 16, 256 or RGB colors and get escape codes for bash, Python, JS and C.Apache Virtual Host GeneratorCreate an Apache VirtualHost config with SSL, redirects, reverse proxy or PHP-FPM in seconds.Bash Prompt GeneratorDrag and drop a custom PS1 prompt for bash or zsh with colors, git branch and a live preview.Changelog GeneratorTurn Conventional Commit messages into a grouped Keep a Changelog Markdown file per version.cURL Command BuilderBuild curl commands from a form: method, headers, query, JSON or form body, auth and flags.Docker Compose to KubernetesConvert docker-compose.yml into Kubernetes Deployment, Service, ConfigMap and PVC manifests.Docker Compose ValidatorCheck a docker-compose.yml for YAML errors, schema mistakes, broken references and deprecated keys.Dockerfile LinterLint a Dockerfile for best practices: pinned tags, apt cleanup, non-root USER and layer count.Dockerignore GeneratorBuild a .dockerignore from Node, Python, Go and Java templates, plus your own entries.ESLint Config GeneratorGenerate a flat eslint.config.js for JavaScript, TypeScript, React or Node with rule presets.Git Branch Name GeneratorTurn a ticket ID and title into a clean, valid git branch name like feature/PROJ-12-add-login.GitLab CI Config GeneratorGenerate a .gitlab-ci.yml with stages, jobs, images, cache, artifacts and rules from templates.Jinja2 Template TesterRender Jinja2 templates with YAML or JSON variables using real Jinja2, with clear error lines.JSON Schema Mock Data GeneratorGenerate realistic sample JSON from a JSON Schema: formats, patterns, $ref, seeds and counts.Kubernetes Secret GeneratorCreate Kubernetes Secret YAML from key/value pairs or .env with auto base64, or decode one.Kubernetes YAML ValidatorValidate Kubernetes manifests against the API schema of a chosen version, with error paths.Prettier Config GeneratorToggle Prettier options, preview formatted code live and copy your .prettierrc file.
See all 85 Code Generators & Builders →