Skip to main content

Python logging formatter for readability.

Project description

Python logging formatter for readability.

Implemented as an override for the logging.Formatter class.

Intended advantages:

  • readable nested traceback exception cause chains

  • compose message for either user, developer or log server

  • reusable library for consistency across multiple projects

Installation

pip install git+https://gitlab.diamond.ac.uk/scisoft/dls-logformatter.git

dls-logformatter --version

Usage

import logging

from dls_logformatter.dls_logformatter import DlsLogformatter

# Make handler which writes the logs to console.
handler = logging.StreamHandler()

# Make the formatter from this library.
dls_logformatter = DlsLogformatter()

# Let handler write the custom formatted messages.
handler.setFormatter(dls_logformatter)

# Let root logger use the handler.
root_logger = logging.getLogger()
root_logger.addHandler(handler)

Example output

dls_logformatter --example long

2022-12-25 06:23:42.612463   195 MainProcess  MainThread          0        0 WARNING   /22/dls-logformatter/src/dls_logformatter/__main__.py[35] this is a warning message
2022-12-25 06:23:42.612568   195 MainProcess  MainThread          0        0 INFO      /22/dls-logformatter/src/dls_logformatter/__main__.py[36] this is an info message
2022-12-25 06:23:42.612609   195 MainProcess  MainThread          0        0 INFO      /22/dls-logformatter/src/dls_logformatter/__main__.py[37] this is a debug message
2022-12-25 06:23:42.612666   195 MainProcess  MainThread          0        0 ERROR     /22/dls-logformatter/src/dls_logformatter/__main__.py[42] this is an error message
                                                                             EXCEPTION RuntimeError: error in deep3
                                                                             TRACEBACK /22/dls-logformatter/src/dls_logformatter/__main__.py[40] deep1()
                                                                             TRACEBACK /22/dls-logformatter/src/dls_logformatter/__main__.py[18] deep2()
                                                                             TRACEBACK /22/dls-logformatter/src/dls_logformatter/__main__.py[14] deep3()
                                                                             TRACEBACK /22/dls-logformatter/src/dls_logformatter/__main__.py[10] raise RuntimeError("error in deep3")

dls_logformatter --example short

0        0 WARNING   dls_logformatter.__main__::example[37] this is a warning message
0        0 INFO      dls_logformatter.__main__::example[38] this is an info message
0        0 INFO      dls_logformatter.__main__::example[39] this is a debug message
0        0 ERROR     dls_logformatter.__main__::example[44] this is an error message
           EXCEPTION RuntimeError: error in deep3
           TRACEBACK dls_logformatter.__main__::example[42] deep1()
           TRACEBACK dls_logformatter.__main__::deep1[18] deep2()
           TRACEBACK dls_logformatter.__main__::deep2[14] deep3()
           TRACEBACK dls_logformatter.__main__::deep3[10] raise RuntimeError("error in deep3")

dls_logformatter --example bare

this is a warning message
this is an info message
this is a debug message
this is an error message

Documentation

See http://www.cs.diamond.ac.uk/reports/gitlab-ci/dls-logformatter/index.html for more detailed documentation.

Building and viewing the documents locally:

git clone git+https://gitlab.diamond.ac.uk/scisoft/dls-logformatter.git
cd dls-logformatter
virtualenv /scratch/$USER/venv/dls-logformatter
source /scratch/$USER/venv/dls-logformatter/bin/activate
pip install -e .[dev,docs]
make -f .dls-logformatter/Makefile validate_docs
browse to file:///scratch/$USER/venvs/dls-logformatter/build/html/index.html

Topics for further documentation:

  • TODO list of improvements

  • change log

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

dls-logformatter-1.0.1.tar.gz (51.5 kB view hashes)

Uploaded Source

Built Distribution

dls_logformatter-1.0.1-py3-none-any.whl (18.3 kB view hashes)

Uploaded Python 3

Supported by

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