Use the small configuration surface
basicConfig accepts level, filename, stream, force, and handlers. Filename and stream are mutually exclusive, and cannot be combined with handlers. force=True clears existing root handlers.
BasicConfig is slotted in 0.2.0. Auxiliary attributes raise AttributeError. Store caller-owned state separately.
Prepare a complete graph
ConfigBuilder registers handler and filter builders, then binds their identifiers to LoggerConfigBuilder entries. A root logger configuration is required. build_and_init() validates references and prepares configuration before mutating live logger state.
Set with_propagate(False) when a named logger owns all of its output. Default levels and disabling existing loggers are explicit builder options. Use RuntimeConfigBuilder and LoggerMutationBuilder for the supported mutation surface.
Check declarative restrictions
dictConfig supports a restricted version-1 schema with a mandatory root. Logger filters may use level/name declarations or callable factories. Incremental updates, handler filters, handler levels, and handler formatter attachment are unsupported.
fileConfig translates INI to that restricted schema. Default substitutions work; formatter sections and handler-level overrides raise ValueError. A failed configuration leaves live logger state intact.