API Stability¶
obslog follows Semantic Versioning (REL-001). The Record schema
is versioned independently via schema_version (REL-002).
What is public¶
Public API is exactly the symbols re-exported from obslog and these documented
submodules (API-017):
| Namespace | Public surface |
|---|---|
obslog |
get_logger, configure, configure_from_file, configure_from_env, configure_from_mapping, context, new_id, lazy, Logger, Level, Telemetry, Lazy |
obslog.sinks |
Stream, Memory, Null, Multi, Pipeline, Batching |
obslog.formats |
json, console, JsonFormatter, ConsoleFormatter |
obslog.processors |
Redact, Sample, Enrich |
obslog.diagnostics |
CodeRegistry, ErrorCode, UnknownErrorCode, CheckCodes, hint, build_bundle, bundle_to_json, BundleSink |
obslog.testing |
MemorySink, NullSink, capture, null_logger, FrozenClock, SequentialIds, snapshot, snapshot_json, normalize_record |
obslog.integrations |
LoggingSink, ObslogHandler, ASGICorrelationMiddleware |
obslog.integrations.opentelemetry |
OTelExporter, record_to_otel |
obslog.plugins |
discover, Registry |
Anything with a leading underscore, and anything not listed above, is private and may change without notice.
Guarantees at 1.0¶
- The public API surface above is frozen for the 1.x series: no breaking changes
except in a major (2.0) release (
REL-003). - The reserved Record fields, their names, and their types are frozen (
SCHEMA-001); the schema evolves only additively within schema major version 1 (SCHEMA-008). - Extension protocols (
Sink,Processor,Formatter,Exporter,ContextExtractor,Clock,IdGenerator) are stable contracts.
Deprecation policy¶
Deprecations ship with a documented migration path and a deprecation period (at least
one minor release) before removal (REL-004). Deprecated APIs emit a DeprecationWarning.
Pre-1.0¶
While the version is 0.x, the public API may still change; such changes are called out
in the changelog.