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.10.tar.gz (4.9 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.10-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ume_logging-0.0.10.tar.gz
  • Upload date:
  • Size: 4.9 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.10.tar.gz
Algorithm Hash digest
SHA256 3af71e4d6fb9e816d7c2bbb93a55ef5f07ee9b4878dd082d9abe461e745a519c
MD5 ec0595eb93eb54960994573f676737b8
BLAKE2b-256 bf4ce5819d0828af96f37c93bfe9980ef20fd73c1c5bd62e6597d7acf0ca51d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ume_logging-0.0.10.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.10-py3-none-any.whl.

File metadata

  • Download URL: ume_logging-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 5.2 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 f642cd04944073ae8af5d3da6d73c85f798c5f9b697c83c9689ee3371ad57808
MD5 06a16df3e6f62695d0ed66676ef5af61
BLAKE2b-256 96aeecd882be42102ebecdd8a94f46d6b5a5b4ebd580e4ef68621a808fa3fefe

See more details on using hashes here.

Provenance

The following attestation bundles were made for ume_logging-0.0.10-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