Skip to content

helpers-no/sovdev-logger

Repository files navigation

sovdev-logger

Multi-language structured logging with zero-effort observability

One log call. Complete observability. Currently available for TypeScript and Python, with Go, C#, Rust, PHP, and more planned.


What is sovdev-logger?

One log call gives you structured logs, metrics, and distributed traces — correlated automatically — instead of hand-wiring a logger, a metrics client, and a tracer separately for every operation. It works with any OpenTelemetry-compatible backend: Azure Monitor, Grafana Cloud, Datadog, New Relic, Honeycomb, or self-hosted Loki/Prometheus/Tempo.

You write code for yourself, but you write logs for the on-call engineer debugging a production incident who doesn't know your codebase. sovdev-logger makes the useful version (structured, correlated, with real context) the default, not extra effort.

See Why OTLP for why it's built this way — including the real tradeoffs, not just the benefits — and the docs site for the full picture: usage guides, configuration, and the specification every language implementation follows.


Supported Languages

Language Status Documentation
TypeScript ✅ Available typescript/README.md
Python ✅ Available python/README.md
Go 📅 Planned -
C# 📅 Planned -
Rust 📅 Planned -
PHP 📅 Planned -

Quick Start

Using the library in your application:

npm install sovdev-logger           # TypeScript — see typescript/README.md
pip install -r requirements.txt      # Python, from the python/ directory — see python/README.md

Full API reference, examples, and configuration live in each language's own README, and on the docs site (in progress — the READMEs are authoritative until that migration completes).

Implementing sovdev-logger in a new language:

  1. Read Implementation guide — the end-to-end process: contract → TypeScript → anti-patterns → implement → compare-with-master.sh
  2. Study typescript/src/logger.ts — the master implementation
  3. Run tools/validation/uis/compare-with-master.sh {language} until it passes — the actual completion gate, not a checklist

See the contributor docs for the full specification.


Documentation


License

MIT License - Copyright (c) 2025 Norwegian Red Cross

See LICENSE for details.


Support


Repository Status

This repository implements a multi-language logging library with identical output across all languages.

Development Status:

  • Specification v2.1.0 - Complete implementation guide
  • TypeScript - Complete, master implementation (snake_case API)
  • Python - Conformant, verified field-for-field against TypeScript via tools/validation/uis/compare-with-master.sh
  • 📅 Go, C#, Rust, PHP - Planned

All implementations follow:

  • Identical API (8 functions)
  • Identical output format (JSON with snake_case fields)
  • Identical validation requirements
  • Source of truth: Contributor documentation

About

Zero-effort structured logging with OpenTelemetry. One log call → logs, metrics, traces, and service maps. Works with Azure Monitor, Grafana, and any OTLP backend. Multi-language: TypeScript, Python, C#, Go, Rust, PHP.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors