Complete guide for using the Network Logging Monitor graphical interface.
# Activate virtual environment
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# Run GUI
python network_logging_gui.pySimply double-click the executable:
- Windows:
NetworkLoggingMonitor.exe - Linux:
./NetworkLoggingMonitor - macOS:
NetworkLoggingMonitor.app
┌─────────────────────────────────────────────────────┐
│ 🌐 Network Logging Monitor │
├─────────────────────────────────────────────────────┤
│ 📊 Current Status │
│ ┌─────────────────────────────────────────────┐ │
│ │ Monitoring: ● Running [▶ Start] [⏹ Stop] │ │
│ │ Last Check: 2025-10-02 14:32:05 │ │
│ │ Gateway: 192.168.1.1 ✓ │ │
│ │ Internet: Connected ✓ │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ 📈 Quick Statistics │
│ ┌─────────────────────────────────────────────┐ │
│ │ Total Checks: 142 Success Rate: 98.5% │ │
│ │ Session Uptime: 02:15:33 Last: Success │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ 📝 Recent Activity │
│ ┌─────────────────────────────────────────────┐ │
│ │ [14:32:05] ✓ Internet connection OK │ │
│ │ [14:32:05] ✓ Gateway reachable: 192.168.1.1│ │
│ │ [14:31:05] 🔄 Running monitoring check... │ │
│ │ [14:30:05] ✓ Internet connection OK │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│ [🔬 Run Manual Test] [📄 View MTR Logs] │
│ [📁 Open Logs Folder] [📊 Analyze Logs] │
│ [🗑️ Clear Activity] │
├─────────────────────────────────────────────────────┤
│ ⚙️ Configuration │
│ [📝 Edit config.json] [⏰ Setup Scheduler (Admin)]│
│ [🔍 Discover ISP Hops] [🔌 Probe TCP Hosts] │
└─────────────────────────────────────────────────────┘
Start Monitoring:
- Click ▶ Start button
- Runs continuous checks in background
- Updates status every minute (configurable in config.json)
- Shows real-time connectivity status
Stop Monitoring:
- Click ⏹ Stop button
- Stops background checks
- Session statistics are preserved
Status Indicators:
- ● Running (green) = Active monitoring
- ● Stopped (red) = Not monitoring
- ✓ (green) = Connection OK
- ✗ (red) = Connection failed
Current Status Section:
- Monitoring: Whether monitoring is active
- Last Check: Timestamp of most recent check
- Gateway: Local network gateway status (192.168.x.x)
- Internet: External connectivity status
Quick Statistics:
- Total Checks: Number of checks performed this session
- Success Rate: Percentage of successful checks (color-coded)
- Green: ≥95%
- Orange: 80-94%
- Red: <80%
- Session Uptime: How long monitoring has been running
- Last Result: Status of most recent check
Real-time log of all monitoring activities:
- Connectivity checks
- Gateway status
- Errors and warnings
- Manual test results
Auto-scrolls to show latest activity.
Clear with: 🗑️ Clear Activity button
- Executes a one-time full network diagnostic
- Runs
netLogging.pyin background - Results appear in activity log
- Useful for testing configuration
Opens Log Viewer Window (see below)
- Opens
logs/directory in file explorer - Quick access to all log files
- Platform-specific (Windows Explorer, Finder, Nautilus)
- Runs
analyze_netlog.py - Shows statistics from log files
- Results in popup window
Clears the activity log display (doesn't delete log files)
- Opens configuration file in default editor
- Edit monitoring targets
- Change check intervals
- Modify timeout settings
Example config.json:
{
"mtr_targets": ["1.1.1.1"],
"isp_targets": ["88.79.29.66"],
"check_interval_seconds": 60,
"ping_timeout_sec": 5
}Requires Administrator/Root privileges!
- Windows: Launches PowerShell script to setup Task Scheduler
- Linux: Opens terminal for cron setup with sudo
- macOS: Opens launchd setup with admin prompt
Interactive setup asks for monitoring interval:
- 1 minute
- 2 minutes
- 5 minutes
- 10 minutes
- Custom
What it does:
- Creates scheduled task/cron job/launchd plist
- Runs monitoring automatically at chosen interval
- Survives reboots (starts on boot)
Troubleshooting:
- If UAC/sudo prompt doesn't appear, run GUI as administrator
- Check SCHEDULING.md for manual setup instructions
- Runs
discover_isp_hops.py - Identifies your ISP's network infrastructure
- Suggests optimal targets for monitoring
- Results in popup window
- Runs
probe_tcp_hosts.py - Tests TCP connectivity to configured hosts
- Useful for firewall debugging
- Results in popup window
Separate window for viewing and analyzing MTR log files.
File Selection:
- Dropdown lists all
.logfiles inlogs/folder - Sorted by date (newest first)
- Auto-loads most recent log
Search/Filter:
- Enter search term (IP address, date, "error", etc.)
- Click 🔍 Search or press Enter
- Matches highlighted in yellow
- Status bar shows match count
- Auto-scrolls to first match
Syntax Highlighting:
- Blue: IP addresses (192.168.1.1, 1.1.1.1)
- Green: Timestamps (2025-10-02 14:32:05)
- Red: Errors ("failed", "100.0% packet loss")
- Purple Bold: Separators (======)
Controls:
- 🔄 Refresh: Reload file list
- Clear: Remove search highlighting
Find all packet loss events:
Search: "packet loss"
Check specific date:
Search: "2025-10-02"
Find ISP hop issues:
Search: "88.79.29.66"
View errors only:
Search: "error|failed"
-
Start on Boot:
- Use "Setup Scheduler" for automatic monitoring
- Better than keeping GUI open 24/7
-
Monitor ISP Hops:
- Run "Discover ISP Hops" first
- Add suggested IPs to config.json
- Helps identify WHERE failures occur
-
Check Logs Weekly:
- Use "Analyze Logs" for summaries
- Look for patterns (time of day, specific targets)
-
Keep config.json Simple:
- 1-2 targets usually sufficient
- More targets = more network traffic
-
Manual Tests During Issues:
- When internet acts up, click "Run Manual Test"
- Captures detailed diagnostics immediately
GUI won't start:
- Check Python version:
python --version(need 3.8+) - Install Tkinter if missing (usually included)
- Debian/Ubuntu:
sudo apt install python3-tk - Fedora:
sudo dnf install python3-tkinter
- Debian/Ubuntu:
"Admin" buttons don't work:
- Run GUI as administrator/root
- Windows: Right-click .exe → "Run as administrator"
- Linux:
sudo python network_logging_gui.py - macOS: Enter password when prompted
Monitoring doesn't detect outages:
- Check config.json targets are reachable
- Try manual test first
- Increase check frequency (lower interval)
High CPU usage:
- Increase
check_interval_secondsin config - Reduce number of targets
- Check for stuck background threads
Logs not appearing:
- Verify
logs/folder exists - Check file permissions
- Look in activity log for errors
Currently no keyboard shortcuts (future enhancement).
Suggested shortcuts for future versions:
Ctrl+S: Start monitoringCtrl+T: Manual testCtrl+L: Open log viewerCtrl+E: Edit configCtrl+Q: Quit
Check for Updates:
- No auto-update (yet)
- Check GitHub for new releases
- Subscribe to repository for notifications
Update Process:
- Download latest release
- Replace executable/scripts
- Keep existing config.json and logs/
Backup Logs:
# Before updating
cp -r logs/ logs_backup_$(date +%Y%m%d)/(Screenshots would go here in actual docs)
- Status indicators
- Activity log
- Control buttons
- Syntax highlighting
- Search results
- File selection
- Windows Task Scheduler
- Linux cron editor
- macOS launchd
Documentation:
- README.md - Project overview
- SCHEDULING.md - Automated setup
- BUILD.md - Compilation guide
- CONTRIBUTING.md - Development guide
Issues:
- GitHub Issues: [your-repo]/issues
- Include:
- Operating system
- Python version (if from source)
- Error messages from activity log
- Steps to reproduce
Community:
- GitHub Discussions: [your-repo]/discussions
- Reddit: r/homelab, r/selfhosted
(Future: Link to YouTube tutorials)
Planned topics:
- First-time setup walkthrough
- ISP issue documentation workflow
- Advanced configuration
- Building from source
For servers without GUI:
# Use CLI version instead
python netLogging.py- Run GUI on server via X forwarding (Linux)
- Access logs via file share (SMB/NFS)
- Future: Web interface
Run multiple monitoring sessions:
# Create separate directories
mkdir monitor1 monitor2
cd monitor1
# Copy files, edit config
python network_logging_gui.pyPlanned enhancements:
- Real-time graphs (matplotlib)
- Desktop notifications
- Email/webhook alerts
- Dark mode theme
- Web dashboard
- Mobile app companion
- Historical data export (CSV/JSON)
- Comparison mode (before/after ISP change)
Enjoy monitoring! 🌐📊
For more help, see README.md or open an issue on GitHub.