Skip to content
femtologging
Menu

Read

Compatibility, with boundaries.

Familiar names support adoption. The runtime remains an experiment with a separate logging manager.

0.2.0 surface · 0.2.0-beta1 forthcoming

A small long-neck robot dinosaur on an aluminium specimen stub, inspecting a teal-lit two-sided adapter.

FL-C-012SE · false colour · simulated3 fm illustrative scale

Plate 12Interface inspector, mounted for imaging. Both halves of the adapter were found to fit.

Check the supported surface

SurfaceStatusContract
Named loggers and propagationSupportedDotted names, levels, get_logger/getLogger
Inline extra, exc_info, stack_infoSupportedValidated fields; exception() lacks extra
Existing logging.HandlerAdapterStdlibHandlerAdapter, separate managers
basicConfigRestrictedFive fields; no format/datefmt
dictConfig / fileConfigRestrictedNo incremental updates or handler formatter attachment
Lazy message argumentsUnsupportedPass a complete message string
LoggerAdapter, caller introspectionUnsupportedDo not assume full LogRecord parity
Journald / OpenTelemetry exportersPlannedNo exporter capability claim

Separate platform and build features

Package metadata requires Python 3.12+. Source verification on this site uses CPython 3.13 and Linux; that is evidence for the examples, not a complete wheel availability matrix. Rust is required for a source build.

Unix sockets require POSIX. TLS sockets use TCP. Rust log-compat and tracing-compat are optional Cargo features with process-global registration constraints. Consult the bridge reference before mixing native logging frameworks.

Migrate one boundary at a time

Keep the managers separate. Start with one component, make output ownership explicit, and check flush and failure behaviour under load. Use the migration guide and adapter example.