Log internet outages on Windows and get a report that shows whether each one was on your side or your provider's.
See the code![]()
Log every internet outage on Windows, and get a report that shows whether the problem was on your side or your provider's.
⬇ Download OutageLog.exe · Website · Sample report · How it decides · FAQ
Your internet keeps dropping, but when you call the provider everything "looks fine on our end", and the drop was over before you could run a speed test. What you need is a record of every outage, with times, and something that tells your Wi-Fi apart from their line.
OutageLog is a small tray app that checks your connection every 2 seconds, logs every drop, and turns the log into a one-page report you can send to your provider: every outage with start time and length, a day-by-day timeline, and a verdict for each one.

1.1.1.1, Google 8.8.8.8, Quad9 9.9.9.9). Router answers but the internet doesn't: the break is past your router, on the provider's side. Router stops answering too: it's your Wi-Fi, cable or router. Internet answers but names don't resolve: DNS.%LOCALAPPDATA%\OutageLog\data. Nothing is uploaded anywhere.
OutageLog.exe from the latest release.%LOCALAPPDATA%\OutageLog\) and run it. It starts with Windows from then on, since a log only helps if it's running when the internet drops. You can turn that off in the tray menu.The exe isn't code-signed yet, so SmartScreen may show "Windows protected your PC". Click More info → Run anyway, or build it yourself (below). Release builds are compiled by GitHub Actions from the tagged source and come with a SHA-256 checksum.
For the best evidence, run it on a PC connected to the router by cable. On Wi-Fi, a weak signal shows up as "your side", never as "provider side", so the provider-side numbers stay trustworthy, but some real provider outages may hide behind Wi-Fi drops.
About every 2 seconds OutageLog runs these checks at the same time: a ping to your router (the default gateway), a ping to each of the three internet servers (with the TCP fallback), and a DNS lookup of a well-known site that bypasses Windows' DNS cache. Each round gets one verdict:
| Router | Internet servers | DNS | Verdict | Side |
|---|---|---|---|---|
| any | at least 2 of 3 answer quickly | works | Online | |
| any | only 1 answers, or even the fastest is slower than 300 ms | works | Slow or unstable (not an outage) | |
| any | answer | fails | DNS not answering | DNS |
| answers | none answer | Internet down, router OK | Provider | |
| answered earlier, not now | none answer | Router not reachable | Yours | |
| no network adapter connected | PC not connected | Yours | ||
| never answers pings (some routers don't) | none answer | Internet down | Undetermined |
An outage starts at the first of 2 or more failed rounds in a row and ends at the first of 2 good rounds. A single failed round is a brief drop. An outage's verdict is what most of its rounds said. Checks in the 30 seconds after the app starts or the PC wakes up aren't judged, and gaps longer than 20 seconds between rounds (sleep, shutdown) count as "not monitoring".
Will it slow down my internet?
No. A round is 4 small pings and one DNS lookup, well under 1 KB, so about 1–2 MB an hour. On a metered connection you can check less often: set intervalSeconds in %LOCALAPPDATA%\OutageLog\settings.ini.
Does it prove the outage was my provider's fault?
It gives you timestamps and a clear observation: at 20:31 the router answered and three independent internet servers didn't, for 11 minutes. That's usually what gets a technician to look at the line. It's still one PC's view, and a provider may run its own tests. Keep the modem's own log (often at 192.168.100.1 for cable modems) alongside it if you can.
My outages all say "Internet down" with no side. Your router doesn't answer pings, so OutageLog can't tell whether the break was before or after it. The outage times are still right. Running the self-test tells you if this applies to you.
What about VPNs? OutageLog pings the gateway of the network adapter Windows uses to reach the internet. With a full-tunnel VPN that adapter may be the VPN's, so the "router" check means less, and a VPN that drops while your line is fine also looks like an outage. For evidence to show your provider, turn the VPN off or exclude OutageLog from it.
Where are the logs, and how big do they get?
%LOCALAPPDATA%\OutageLog\data, one CSV file per day, about 2 MB for a day of checks. Files older than 60 days are deleted (keepDays in settings.ini; 0 keeps everything).
Can a CSV file be edited? Yes. This is your own record, not a certified measurement. The report shows how everything was measured so anyone can judge it.
Why not PingPlotter, Net Uptime Monitor or Ping Tracer? They're good tools with different jobs. PingPlotter is a commercial diagnostics suite. Net Uptime Monitor costs $9.95 (its trial closes after 30–60 minutes) and writes a plain-text log. Ping Tracer is free, open source and actively maintained, and shows live latency graphs per network hop. OutageLog is the one whose whole job is an outage record that says which side each outage was on, turned into a report you can send.
OutageLog.exe --report 7 HTML report of the last 7 days (opens it)
OutageLog.exe --report 30 --out x.html --no-open
OutageLog.exe --self-test 20 real checks + a faked 20 s outage, using a temporary log; exit code 0 = pass
OutageLog.exe --watch print every round live, log nothing
OutageLog.exe --demo-report a report from made-up data
In PowerShell, pipe to Out-Host (for example .\OutageLog.exe --self-test | Out-Host) so the prompt waits for the output.
Needs the .NET SDK (6 or later) on Windows.
dotnet test tests/OutageLog.Tests
dotnet build src/OutageLog -c Release
The exe lands in src/OutageLog/bin/Release/net48/. The deciding logic (Classifier, OutageTracker, ReportData) is separate from the Windows code and covered by the unit tests.
People have been asking for this for over fifteen years, and the answers are usually "run ping -t into a text file":
MIT © 2026 BoazCohenJ
C#
100.0%
Log internet outages on Windows and get a report that shows whether each one was on your side or your provider's.
See the code![]()
Log every internet outage on Windows, and get a report that shows whether the problem was on your side or your provider's.
⬇ Download OutageLog.exe · Website · Sample report · How it decides · FAQ
Your internet keeps dropping, but when you call the provider everything "looks fine on our end", and the drop was over before you could run a speed test. What you need is a record of every outage, with times, and something that tells your Wi-Fi apart from their line.
OutageLog is a small tray app that checks your connection every 2 seconds, logs every drop, and turns the log into a one-page report you can send to your provider: every outage with start time and length, a day-by-day timeline, and a verdict for each one.

1.1.1.1, Google 8.8.8.8, Quad9 9.9.9.9). Router answers but the internet doesn't: the break is past your router, on the provider's side. Router stops answering too: it's your Wi-Fi, cable or router. Internet answers but names don't resolve: DNS.%LOCALAPPDATA%\OutageLog\data. Nothing is uploaded anywhere.
OutageLog.exe from the latest release.%LOCALAPPDATA%\OutageLog\) and run it. It starts with Windows from then on, since a log only helps if it's running when the internet drops. You can turn that off in the tray menu.The exe isn't code-signed yet, so SmartScreen may show "Windows protected your PC". Click More info → Run anyway, or build it yourself (below). Release builds are compiled by GitHub Actions from the tagged source and come with a SHA-256 checksum.
For the best evidence, run it on a PC connected to the router by cable. On Wi-Fi, a weak signal shows up as "your side", never as "provider side", so the provider-side numbers stay trustworthy, but some real provider outages may hide behind Wi-Fi drops.
About every 2 seconds OutageLog runs these checks at the same time: a ping to your router (the default gateway), a ping to each of the three internet servers (with the TCP fallback), and a DNS lookup of a well-known site that bypasses Windows' DNS cache. Each round gets one verdict:
| Router | Internet servers | DNS | Verdict | Side |
|---|---|---|---|---|
| any | at least 2 of 3 answer quickly | works | Online | |
| any | only 1 answers, or even the fastest is slower than 300 ms | works | Slow or unstable (not an outage) | |
| any | answer | fails | DNS not answering | DNS |
| answers | none answer | Internet down, router OK | Provider | |
| answered earlier, not now | none answer | Router not reachable | Yours | |
| no network adapter connected | PC not connected | Yours | ||
| never answers pings (some routers don't) | none answer | Internet down | Undetermined |
An outage starts at the first of 2 or more failed rounds in a row and ends at the first of 2 good rounds. A single failed round is a brief drop. An outage's verdict is what most of its rounds said. Checks in the 30 seconds after the app starts or the PC wakes up aren't judged, and gaps longer than 20 seconds between rounds (sleep, shutdown) count as "not monitoring".
Will it slow down my internet?
No. A round is 4 small pings and one DNS lookup, well under 1 KB, so about 1–2 MB an hour. On a metered connection you can check less often: set intervalSeconds in %LOCALAPPDATA%\OutageLog\settings.ini.
Does it prove the outage was my provider's fault?
It gives you timestamps and a clear observation: at 20:31 the router answered and three independent internet servers didn't, for 11 minutes. That's usually what gets a technician to look at the line. It's still one PC's view, and a provider may run its own tests. Keep the modem's own log (often at 192.168.100.1 for cable modems) alongside it if you can.
My outages all say "Internet down" with no side. Your router doesn't answer pings, so OutageLog can't tell whether the break was before or after it. The outage times are still right. Running the self-test tells you if this applies to you.
What about VPNs? OutageLog pings the gateway of the network adapter Windows uses to reach the internet. With a full-tunnel VPN that adapter may be the VPN's, so the "router" check means less, and a VPN that drops while your line is fine also looks like an outage. For evidence to show your provider, turn the VPN off or exclude OutageLog from it.
Where are the logs, and how big do they get?
%LOCALAPPDATA%\OutageLog\data, one CSV file per day, about 2 MB for a day of checks. Files older than 60 days are deleted (keepDays in settings.ini; 0 keeps everything).
Can a CSV file be edited? Yes. This is your own record, not a certified measurement. The report shows how everything was measured so anyone can judge it.
Why not PingPlotter, Net Uptime Monitor or Ping Tracer? They're good tools with different jobs. PingPlotter is a commercial diagnostics suite. Net Uptime Monitor costs $9.95 (its trial closes after 30–60 minutes) and writes a plain-text log. Ping Tracer is free, open source and actively maintained, and shows live latency graphs per network hop. OutageLog is the one whose whole job is an outage record that says which side each outage was on, turned into a report you can send.
OutageLog.exe --report 7 HTML report of the last 7 days (opens it)
OutageLog.exe --report 30 --out x.html --no-open
OutageLog.exe --self-test 20 real checks + a faked 20 s outage, using a temporary log; exit code 0 = pass
OutageLog.exe --watch print every round live, log nothing
OutageLog.exe --demo-report a report from made-up data
In PowerShell, pipe to Out-Host (for example .\OutageLog.exe --self-test | Out-Host) so the prompt waits for the output.
Needs the .NET SDK (6 or later) on Windows.
dotnet test tests/OutageLog.Tests
dotnet build src/OutageLog -c Release
The exe lands in src/OutageLog/bin/Release/net48/. The deciding logic (Classifier, OutageTracker, ReportData) is separate from the Windows code and covered by the unit tests.
People have been asking for this for over fifteen years, and the answers are usually "run ping -t into a text file":
MIT © 2026 BoazCohenJ
C#
100.0%