Skip to main content

Dynamic Logger Class for logging

Project description

DynamicLogger

DynamicLogger is an extension of logging.Logger to provide additional functionality to log "extra" values quickly and dynamically.

Installation

One Liner

python -m pip install dynamic_logger

Or if you prefer Manual Installation

git clone https://github.com/ajatkj/dynamic_logger.git
cd dynamic_logger
pip install .

Usage

import dynamic_logger
import logging
logging.setLoggerClass(dynamic_logger.Logger)

# Set-up log formatter with user-definied attributes
fmt = '[%(asctime)s] <%(app)s> [%(levelname)s] <%(id)s> <%(customer_id)s> --- %(message)s' # Note: format attributes in <> are user-definited

# Load config
logging.basicConfig(format=fmt, datefmt='%d-%b-%y %H:%M:%S', level='INFO')

applogger = logging.getLogger(__name__)

@applogger.log_extras('id',int=0,customer_id='obj.customer_id') # Log value of 'id' and 'obj.customer_id'
def example_1(id=0,id2=0,obj=None):
    applogger.info('This example shows how to log values from function arguments')

if __name__ = "__main__":
    example_1(id=123456,obj={"customer_id":777})

Above will produce log output as below for all logging calls from the function:

[2022-04-19 12:53:51,658] [INFO] <123456> <customer_id:777> --- This example shows how to log values from function arguments

dynamic_logger exposes 2 main API's

  1. log_extras decorator
    log_extras() will log values dynamically from the decorated function
  2. set_extras function
    set_extras() will log static values for all subsequent logger calls till you call the clear() function.

See more examples in example.py

Some Notes

  1. To use with FastAPI, make sure log_extras() decorator is added after the path decorator of FastAPI.

Contribution

Always open to PRs :)

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

dynamic_logger-1.0.2.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

dynamic_logger-1.0.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file dynamic_logger-1.0.2.tar.gz.

File metadata

  • Download URL: dynamic_logger-1.0.2.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Darwin/21.4.0

File hashes

Hashes for dynamic_logger-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ef057f9f9e971ccf4318cc5dbe140453fe89919a4f15fe6868920aea217e7dcc
MD5 62b7a7b4d419b2528f9a64fb0ce8058e
BLAKE2b-256 07db19cadb8c8bf9fb6317c930ba3d08c240469bd295f92722acb1c7056a487c

See more details on using hashes here.

File details

Details for the file dynamic_logger-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: dynamic_logger-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Darwin/21.4.0

File hashes

Hashes for dynamic_logger-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c5ce31ffd3432058377cdad60d909c1212c099b9dd1fe9874497c4baf4ce933
MD5 b949860d987cdd08a0b84c3df809bd6e
BLAKE2b-256 0072756a5ed35bb4ceccfe4ae42045d3ab7eb90975ac18afe7a3f5f0b52ce766

See more details on using hashes here.

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