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
- log_extras decorator
log_extras()
will log values dynamically from the decorated function - set_extras function
set_extras()
will log static values for all subsequentlogger
calls till you call theclear()
function.
See more examples in example.py
Some Notes
- To use with FastAPI, make sure
log_extras()
decorator is added after the path decorator of FastAPI.
Contribution
Always open to PRs :)
Project details
Release history Release notifications | RSS feed
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.0.tar.gz
(6.8 kB
view hashes)
Built Distribution
Close
Hashes for dynamic_logger-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bce6ac6f7d81101a2167768caaf63f1a76f98c2c692c22428592ad949e1d963 |
|
MD5 | 95c7fb0bda9e06d66f1b8cac837883e6 |
|
BLAKE2b-256 | d7a3fc0bcd9bab6aa5a61ec05aa4136ce1d0dd960f5e9e45251fdd6d4de9a76a |