Skip to main content

Uniform JSON logging for University Medicine Essen (UME)

Project description

UME Logging (logging-ume)

PyPI Python Versions License

Uniform JSON logging for University Medicine Essen applications.


Features

  • JSON log output (Docker/K8s/ELK friendly)
  • App/env/service/request context injection
  • PII scrubbing (emails, numeric IDs, phone numbers)
  • OpenTelemetry trace/span IDs in logs
  • Optional log→OTel span event bridge
  • FastAPI middleware for request/response logging
  • Compatible with Python 3.9+

📦 Installation

pip install logging-ume
# Optional extras:
pip install "logging-ume[fastapi]"   # FastAPI request logging middleware
pip install "logging-ume[otel]"      # OpenTelemetry tracing + span events

🚀 Quickstart

import logging
from umelogging import log_configure

log_configure("INFO", app="dicom2fhir", env="prod", service="mapping")
log = logging.getLogger(__name__)

log.info("Starting dicom-to-fhir mapping job.")

Example Output (JSON):

{
  "time": "2025-08-12T12:01:23.456Z",
  "level": "INFO",
  "logger": "myapp",
  "message": "Starting dicom-to-fhir mapping job.",
  "org": "UME",
  "app": "dicom2fhir",
  "env": "prod",
  "service": "mapping"
}

⚙️ Environment Variables

Variable Description Default
UME_LOG_LEVEL Logging level INFO
UME_APP App name
UME_ENV Environment (prod, dev, test) prod
UME_SERVICE Service name
UME_COMPONENT Component/module name
UME_USER_HASH_SALT Salt for user ID hashing ume
UME_OTEL_SPAN_EVENTS Mirror logs as OTel span events false

🌐 FastAPI Integration (optional)

Add request/response logging to your FastAPI app:

from fastapi import FastAPI
from umelogging.fastapi.middleware import UMELoggingMiddleware

app = FastAPI()
app.add_middleware(UMELoggingMiddleware)

This will log incoming requests and responses in JSON, including request ID, latency, status, and correlation information.


📈 OpenTelemetry Integration (optional)

Enable OpenTelemetry tracing and span events in your logs:

from umelogging import log_configure

log_configure(
    "INFO",
    app="myapp",
    env="prod",
    otel_enable=True,  # Enable OpenTelemetry
    otel_exporter="otlp",  # or "console"
)

Configure via environment variables:

Variable Description Example
UMELOG_OTEL_ENABLE Enable OTel tracing/log bridge true
UMELOG_OTEL_EXPORTER OTel exporter ("otlp", "console") otlp
OTEL_EXPORTER_OTLP_ENDPOINT OTel collector endpoint http://otel:4317

See OpenTelemetry Docs for advanced setup.


📄 License

MIT License.
Copyright © University Medicine Essen ZIT / IKIM.

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

ume_logging-0.0.15.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

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

ume_logging-0.0.15-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file ume_logging-0.0.15.tar.gz.

File metadata

  • Download URL: ume_logging-0.0.15.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ume_logging-0.0.15.tar.gz
Algorithm Hash digest
SHA256 c8d6e064f755624103954afd384654063c50098b7b76bc76492566b1eab10eb0
MD5 742f105c38c0b1aea65e79cdbd27d35f
BLAKE2b-256 4bc0550630e34e7af377903cf042d20d42144fb8f462dd92a0e292125ad66b2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ume_logging-0.0.15.tar.gz:

Publisher: python-publish.yml on UMEssen/ume-logging

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ume_logging-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: ume_logging-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ume_logging-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 f480af84fc793be7abf31e39e412d61195a8199ffc6c63b99614f6bf2749ec8f
MD5 0a16d5aa577ad12b994034be6b77ab0d
BLAKE2b-256 fed17cc1366dbf7eaf005720a58db0510c00464e12a4005a481c7aa11906ff71

See more details on using hashes here.

Provenance

The following attestation bundles were made for ume_logging-0.0.15-py3-none-any.whl:

Publisher: python-publish.yml on UMEssen/ume-logging

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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