Skip to main content

OpenTelemetry Standard Log Format library for Python

Project description

otel-log

OpenTelemetry-compliant structured logging for Python. Produces JSON logs conforming to the OTel Log Data Model and optionally configures distributed tracing from a single call.

Installation

# Logging only (lightweight — only opentelemetry-api required)
pip install otel-log

# Logging + tracing
pip install otel-log[tracing]

Quick Start

import otel_log

result = otel_log.setup("my-service", version="1.0.0")

import logging
logging.info("Hello world")
# => {"Timestamp":"...","SeverityText":"INFO","SeverityNumber":9,"Body":"Hello world","Resource":{"service.name":"my-service","service.version":"1.0.0"}}

result.shutdown()

With Tracing

import otel_log

result = otel_log.setup("my-service", endpoint="localhost:4317")

with result.tracer.start_as_current_span("my-operation"):
    logging.info("Inside a span")
    # TraceId, SpanId, TraceFlags auto-injected into the JSON output

Advanced Usage

For auto-instrumentors, custom exporters, or fine-grained configuration:

from otel_log import OTelInitializer, ResourceConfig, InstrumentationConfig

result = OTelInitializer.initialize(
    resource_config=ResourceConfig(
        service_name="my-service",
        service_version="1.0.0",
        deployment_environment="production",
        custom_attributes={"cloud.region": "us-east-1"},
    ),
    instrumentation_config=InstrumentationConfig(
        endpoint="localhost:4317",
        protocol="grpc",
    ),
)

Environment Variables

Variable Description
OTEL_SERVICE_NAME Service name (overrides config)
OTEL_EXPORTER_OTLP_ENDPOINT OTLP trace exporter endpoint
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT OTLP log exporter endpoint
OTEL_RESOURCE_ATTRIBUTES Comma-separated key=value resource attributes

Output Format

All logs conform to the shared JSON schema:

{
  "Timestamp": "2026-03-22T12:00:00.000000Z",
  "SeverityText": "INFO",
  "SeverityNumber": 9,
  "Body": "User logged in",
  "Resource": {"service.name": "my-service"},
  "TraceId": "0af7651916cd43dd8448eb211c80319c",
  "SpanId": "b7ad6b7169203331",
  "TraceFlags": "01"
}

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

otel_log-0.3.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

otel_log-0.3.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file otel_log-0.3.0.tar.gz.

File metadata

  • Download URL: otel_log-0.3.0.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for otel_log-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2d0221fb9ae9063bc29d0e936ffa224f869e8b5dc338564686b6ab52400d6935
MD5 43e1708f1b239fa6ab9e351cfe6b18bd
BLAKE2b-256 242fb0aafdbe86d064673023d2218d170a81d27c6605df55b0907655152240b8

See more details on using hashes here.

File details

Details for the file otel_log-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: otel_log-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for otel_log-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60adb6959c302c82feec6ab365cef3f877b2da06ee51ca1edc376a18765ad12a
MD5 4c4ce1dbf1f9aff35f588ad0dd22bb1f
BLAKE2b-256 2c6a4e69ab6f23250c37aa9135961c396deabf8445046e88ef2e6b13e12a6adf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page