Skip to main content

Mapped Diagnostic Context (MDC) library for python

Project description

https://travis-ci.org/AFriemann/mdc.svg?branch=master

This is thought to be an easy to use, import and go, library for Mapped Diagnostic Context style logging.

Logs should include all necessary fields collected by the python logging library. Helper methods are provided to add context fields where required.

Installation

PyPi:

$ pip install --user mdc

From source:

$ pip install --user .

Usage

Add a handler to the root logger or set the base handler with logging.basicConfig:

>>> import logging
>>> from mdc import MDCHandler

>>> # use the MDCHandler only
>>> logging.basicConfig(level=logging.DEBUG, handlers=[MDCHandler()])

>>> # the MDC contextmanager
>>> with MDC(foo='bar'):
...     logging.warning('foobar')
{ ..., "mdc": { "foo": "bar" }, "extra": {}, ... }

>>> # the with_mdc decorator
>>> @with_mdc(test='123')
... def foobar(ctx):
...   logging.warning('some warning')

>>> foobar()
{ ..., "mdc": { "test": "123" }, "extra": {}, ... }

>>> # logging with extra fields
>>> logging.error('some error', extra=dict(foo='bar'))
{ ..., "mdc": {}, "extra": { "foo": "bar" }, ... }

By default log messages will include the following fields:

{
  "message": "deleting context b8321b4f-19ff-4c98-b011-5a97178e7ad6",
  "logger": "mdc",
  "timestamp": "2018-03-07T21:39:12.010851",
  "level": "DEBUG",
  "mdc": {
    "foo": "bar",
    "index": 76
  },
  "extra": {},
  "python": {
    "module": "__init__",
    "function": "MDC",
    "path": "/home/user/git/mdc/mdc/__init__.py",
    "file": "__init__.py",
    "line": 56,
    "process": {
      "name": "MainProcess",
      "id": 31678
    },
    "thread": {
      "name": "MainThread",
      "id": 140433289192768
    }
  }
}

Running tests:

$ tox

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

mdc-1.0.8.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file mdc-1.0.8.tar.gz.

File metadata

  • Download URL: mdc-1.0.8.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mdc-1.0.8.tar.gz
Algorithm Hash digest
SHA256 14f514a9ddd036f0ba3974fc582966b626a9227bc821b88263908660871490aa
MD5 a6cb3407f9160e0a1fc9ac1a286233a9
BLAKE2b-256 fb3c1d3799172419665508e5567e5b3353ee8e50861d64114940e26f03774b30

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