Pattern flags
The pattern controls the line around your message — timestamp, level, logger name, thread id — and
Custom formatters
When no built-in pattern flag carries the field you need — a request id, a thread name, a tenant —
Source location
File, line, and function are free only if the call site captures them — which is exactly why they're