See what they are probing.
Check if you actually exposed it.
Drop in an access log. xlogs finds repeated probes, the paths people are hunting for, and any secret written into the log itself. Then it compares those requests against your live deployment, so you learn not just that someone asked for your environment file, but whether you were serving it.
No account. No signup. Nothing stored.
How xlogs logs works
You drop a log
It is read in this tab by your own browser. The file does not move.
We find what was probed
Repeated requests, the paths people hunt for, and any secret written into the log itself.
We check what you serve
Optionally scan your live deployment and line the two up, so a request becomes a verdict.
A worked example
This is real output from a sample log, computed by the code above rather than written here. Drop your own file and the same functions produce the same shape of answer.
What was asked for, and whether it is served
Each row pairs the log against a scan of the same deployment.
The scan half of this example is a fixture too, so the whole thing is reproducible. Your own run scans your real deployment.
Your log stays privatexlogs reads the file in your browser. It is not uploaded, not stored on a server, and not written to a database. If you use the join, the only thing sent is the URL you type.How we keep it privateNo upload endpoint exists in this codebaseParsing runs in your browser, not on a serverOnly a URL is sent, and only if you run the joinClosing the tab discards everythingLearn more
Open the network tab and drop a file. Nothing is sent. That is not a configuration choice we could quietly reverse: there is no upload endpoint in this codebase to point at, so there is no retention policy to read, no region to pick, no breach that could expose a log you analysed here, and nothing to delete afterwards.
It costs you something real, and it is worth being clear about what. The large log platforms hold months of history from every service you run and let you search it later. This holds one file for as long as the tab is open. If you need searchable history across a fleet, you need one of those. If you want to know what your access log says this afternoon, you do not need to ship it to anyone first.
Need help getting your log?
Find instructions for your platform.
Vercel
Open your project, then the Logs tab. Or run `vercel logs <deployment>` in a terminal.
Full access logs need a Log Drain, which is a paid plan feature. Runtime logs are available on any plan.
Cloudflare
Analytics and Logs, then Logs. Logpush delivers them to storage you control.
Logpush is an Enterprise feature. The dashboard shows a live tail on lower plans.
nginx
`/var/log/nginx/access.log`, or wherever `access_log` points in your config.
Apache
`/var/log/apache2/access.log` on Debian and Ubuntu. `/var/log/httpd/access_log` on RHEL.
Other platformsView all
Any host that can export request logs works. Look for an access log, request log or Logpush or log drain export, in Common or Combined format or JSON per line.
If your export is a format this does not recognise, the lines are still grouped as message patterns rather than discarded.
Is my log file uploaded anywhere?
No. The file is read by your browser and parsed by JavaScript running in the tab. There is no upload endpoint, nothing is written to storage, and closing the tab discards everything. If you use the join feature, the only thing sent to us is the URL you type, never any part of the log.
Which log formats work?
Apache and nginx Common and Combined formats, and JSON-per-line as emitted by Vercel, Cloudflare and most modern platforms. Lines that match none of those are not discarded: they are grouped as message patterns instead, so an application log is still useful here.
What is the join?
Your log shows which paths people are requesting. A scan shows which paths your app actually serves. Holding both at once produces something neither can say alone: not just that someone asked for your environment file, but that you are serving it. Log analytics tools never scanned your app, and scanners have no idea who has been knocking.
How big a file can it handle?
It reads up to 200,000 lines. Past that it stops and says exactly how many lines it read out of how many the file contains, because a partial read reported as a complete one would be worse than useless.
Do you use AI to analyse the log?
No. Every number here comes from counting and pattern matching, so the same log always produces the same result and you can verify any figure by hand. Patterns are formed by masking the parts that vary, such as ids and timestamps, and grouping what is left.
