Metadata-Version: 2.4
Name: dagstack-logger
Version: 0.1.1rc1
Summary: Python binding for dagstack/logger-spec — OTel-compatible structured logging, named loggers hierarchy, context propagation, sinks, scoped overrides
Project-URL: Homepage, https://git.goldix.org/dagstack/logger-python
Project-URL: Repository, https://git.goldix.org/dagstack/logger-python
Project-URL: Issues, https://git.goldix.org/dagstack/logger-python/issues
Project-URL: Specification, https://git.goldix.org/dagstack/logger-spec
Author-email: Evgenii Demchenko <demchenkoev@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: dagstack,logger,logging,observability,opentelemetry,otel,structured-logging
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Logging
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: opentelemetry-api<2.0,>=1.20
Provides-Extra: otlp
Requires-Dist: opentelemetry-exporter-otlp<2.0,>=1.20; extra == 'otlp'
Requires-Dist: opentelemetry-sdk<2.0,>=1.20; extra == 'otlp'
Description-Content-Type: text/markdown

# dagstack-logger

Python binding для [dagstack/logger-spec](https://git.goldix.org/dagstack/logger-spec) — OTel-compatible structured logging с named loggers hierarchy, W3C trace context propagation, pluggable sinks, scoped overrides.

Конфигурируется через [dagstack-config](https://git.goldix.org/dagstack/config-python).

**Status: Phase A (skeleton).** Реализация в прогрессе.

## Roadmap

- **Phase A** (this PR) — repo skeleton, pyproject, CI, spec submodule, empty package.
- **Phase B** — core primitives: `LogRecord` dataclass, `Severity` enum, W3C hex encoding, dagstack JSON-lines canonical serializer.
- **Phase C** — `Sink` Protocol + Phase 1 sinks: `ConsoleSink` (JSON/pretty TTY-aware), `FileSink` (rotation), `InMemorySink` (ring-buffer).
- **Phase D** — `Logger` class (hierarchy, context propagation, redaction, subscriptions), scoped overrides, `Logger.configure(config_section)` интеграция с `dagstack-config`.
- **Phase 1 release (`0.1.0`)** — MVP без OTLP sink, без LogProcessor chain, без AI-agent extension pack (§5.5 logger-spec).
- **Phase 2+** — OTLPSink, LokiSink, SentrySink, LogProcessor chain (redaction/sampling), AI-agent conventions.

## Spec

Spec submodule в `spec/` → [dagstack/logger-spec](https://git.goldix.org/dagstack/logger-spec). Основные decisions — `spec/adr/0001-logger-contract.md`.

## Local development

```bash
git clone --recurse-submodules git@git.goldix.org:dagstack/logger-python.git
cd logger-python
uv sync --group dev

make test           # pytest
make lint           # ruff check + format --check
make typecheck      # mypy --strict
```

## Dependencies

- `dagstack-config>=0.1.0.dev0` — для конфигурирования.
- `opentelemetry-api>=1.20,<2.0` — для trace/span/baggage context propagation (mandatory per spec §3.4).
- `opentelemetry-sdk` + exporter (optional via `[otlp]` extras) — для OTLPSink в Phase 2+.

## Licensing

Apache-2.0.

## Related

- [`dagstack/logger-spec`](https://git.goldix.org/dagstack/logger-spec) — language-agnostic spec.
- [`dagstack/config-python`](https://git.goldix.org/dagstack/config-python) — config binding; logger читает `logging:` section через этот binding.
- [`dagstack/plugin-system-python`](https://git.goldix.org/dagstack/plugin-system-python) — plugin system; logger instrumentation_scope может быть derived из plugin manifest.
