DL6ER cb0b0a9d20 log: use microsecond timestamp resolution when debug.extra is set
The millisecond resolution of our log timestamps is too coarse to order
events that happen inside the same millisecond, which is exactly what one
needs when chasing down a timing problem. Instead of adding yet another
config option for this, we reuse `debug.extra`, the flag that already
exists for temporary investigations: when it is enabled, `get_timestr()`
prints six instead of three fractional digits.

```
2026-08-06 08:01:40.086 CEST [12345M] INFO: ...     (default)
2026-08-06 08:01:40.086300 CEST [12345M] INFO: ...  (debug.extra = true)
```

This covers every timestamped log line (FTL.log, webserver.log and stdout)
as they all go through `get_timestr()`. The default output is unchanged.

Signed-off-by: DL6ER <dl6er@dl6er.de>
2026-08-06 08:02:15 +02:00

Pi-hole logo
Network-wide ad blocking via your own Linux hardware

FTLDNS logo

FTLDNS (pihole-FTL) provides an interactive API and also generates statistics for Pi-hole®'s Web interface.

  • Fast: stats are read directly from memory by coupling our codebase closely with dnsmasq
  • Versatile: upstream changes to dnsmasq can quickly be merged in without much conflict
  • Lightweight: runs smoothly with minimal hardware and software requirements such as Raspberry Pi Zero
  • Interactive: our API can be used to interface with your projects
  • Insightful: stats normally reserved inside of dnsmasq are made available so you can see what's really happening on your network

Official documentation

The official FTLDNS documentation can be found here.

Installation

FTLDNS (pihole-FTL) is automatically installed when installing Pi-hole.

IMPORTANT

FTLDNS will disable any existing installations of dnsmasq. This is because FTLDNS is dnsmasq + Pi-hole's code, so both cannot run simultaneously.

S
Description
The Pi-hole FTL engine
Readme EUPL-1.2
256 MiB
Languages
C 96.8%
C++ 1.1%
Python 1%
Shell 0.7%
CMake 0.3%