How mikhaildadaev/ulog works
ULOG is a Go telemetry library for emitting structured logs, metrics, and traces through configurable writers and sinks. Callers create typed fields and a Telemetry instance, optionally extract context values, and submit events; the core applies formatting and sync/async delivery before dispatching to a writer. File sinks rotate and compress local logs, while HTTP sinks batch and deliver protocol-specific payloads with retry, sampling, deduplication, and circuit-breaker controls. The README also documents eight service integrations. Those destinations are represented as one documented integration branch because their runtime wiring is not fully sampled.
Main entry points: core.go Telemetry API · ulog.go Format output · sink_http.go HTTP sink · sink_factory.go Integration factories
Components 11
Telemetry core
- Telemetry API
core.go - Typed fields
core.go - Context extraction
core.go - Format output
ulog.go - Async writer
ulog.go
HTTP integrations
- HTTP sink
sink_http.go - Integration factories
sink_factory.go - Telemetry services
Other components
- Application
Connections 12
- Application → Telemetry API: configures and emits
README.md - Application → Typed fields: creates fields
core.go - Telemetry API → Context extraction: extracts values
core.go - Telemetry API → Format output: formats events
ulog.go - Telemetry API → Async writer: queues writes
core.go - Format output → Tee sink: dispatches writes
ulog.go - Format output → File sink: dispatches writes
ulog.go - Format output → HTTP sink: dispatches writes
ulog.go - Tee sink → File sink: writes to
- Integration factories → HTTP sink: constructs
sink_factory.go - Integration factories → Telemetry services: formats for
README.md - HTTP sink → Telemetry services: sends HTTP