- Logger-level formatting is fixed (
"{logger} [LEVEL] message"). To customize output wrap handlers with formatter callables using the builder API:
def json_formatter(record: dict[str, object]) -> str:
import json
return json.dumps(
{
"logger": record["logger"],
"level": record["level"],
"message": record["message"],
},
separators=(",", ":"),
)
stream = StreamHandlerBuilder.stdout().with_formatter(json_formatter).build()
- Formatter identifiers are limited to
"default"for now. Future releases will connectFormatterBuilderand handler formatter IDs, but this is not yet implemented. - Filters are only available through
ConfigBuilder.dictConfigandfileConfigdeliberately reject filter declarations so the limited, guaranteed-safe subset remains obvious.