Compile-time level
A runtime level check is cheap, but it isn't free — it's still a branch and, on the disabled path,
Backtrace
The messages you want after a failure are almost always the debug-level ones you weren't writing to
Flush policies
A log line that's still sitting in a buffer when the process dies never existed, as far as anyone
Best practices
spdlog's globals — the registry, the default logger, the registry-wide setters — are what make the