The Logs page streams the core's runtime output. For failed connections, ineffective rules or subscription errors, the logs almost always contain the clue.
Log levels
The log-level field controls verbosity, from quiet to chatty:
silent: nothing.error: errors only.warning: errors + warnings.info(default): the above + one line per connection; fine for daily use.debug: the above + DNS resolution and rule-matching detail; enable temporarily while debugging.
The easiest way to change it without being overwritten by subscription updates is injecting log-level: debug via Mixin, then reverting.
Quick reference
| Log fragment | Meaning |
|---|---|
[TCP] ... match DomainSuffix using HK01 | Normal: connection routed by rule through a node. |
dial tcp ... i/o timeout | Destination (or node) timed out - unreachable network or dead node. |
bind: address already in use | Port conflict - see Handling Port Conflicts. |
yaml: line N: ... | Syntax error at line N of the config. |
start tun interface error | TUN failed to start - see TUN Issues. |
A longer decoded list lives in Error Logs Explained.