From 3378ec3e5eb1ec195b4fa6fcf3959664d629c243 Mon Sep 17 00:00:00 2001 From: Nuno Duque Nunes Date: Mon, 25 May 2026 00:21:16 +0000 Subject: [PATCH] feat: logs query flags, json_helper module split, handshake logging - wgctl logs --since: relative (2h/7d) and EU/ISO date formats - wgctl logs --service: filter by service name, IP, or IP:port - wgctl logs --event: filter wg events by type - wgctl logs: no header when no logs found - core/lib/util.py: shared utilities, parse_since, reverse_lookup - core/lib/events.py: fw_events, wg_events with query params - core/lib/peers.py: peer_data, peer_transfer - core/lib/activity.py: activity_aggregate - wgctl-monitor.py: handshake session poller thread with cache --- commands/logs.command.sh | 172 +- commands/test/integration.sh | 4 +- core/json_helper.py.bak | 3073 ---------------------------------- 3 files changed, 120 insertions(+), 3129 deletions(-) delete mode 100644 core/json_helper.py.bak diff --git a/commands/logs.command.sh b/commands/logs.command.sh index 5aa19d8..4760760 100644 --- a/commands/logs.command.sh +++ b/commands/logs.command.sh @@ -18,6 +18,8 @@ function cmd::logs::on_load() { flag::register --days flag::register --raw flag::register --detailed + flag::register --service + flag::register --event } function cmd::logs::help() { @@ -32,14 +34,19 @@ Subcommands: rotate Remove entries older than N days Options for show: - --name Filter by client name - --type Filter by device type - --limit Max results per source (default: 50) - --fw Show only firewall drops - --wg Show only WireGuard events - --merged Show all events chronologically interleaved - --follow, -f Follow logs in real time (alias: wgctl watch) - --raw Show raw IPs without service annotation + --name Filter by client name + --type Filter by device type + --limit Max results per source (default: 50) + --since