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 subsequentloggercalls 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef057f9f9e971ccf4318cc5dbe140453fe89919a4f15fe6868920aea217e7dcc
|
|
| MD5 |
62b7a7b4d419b2528f9a64fb0ce8058e
|
|
| BLAKE2b-256 |
07db19cadb8c8bf9fb6317c930ba3d08c240469bd295f92722acb1c7056a487c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c5ce31ffd3432058377cdad60d909c1212c099b9dd1fe9874497c4baf4ce933
|
|
| MD5 |
b949860d987cdd08a0b84c3df809bd6e
|
|
| BLAKE2b-256 |
0072756a5ed35bb4ceccfe4ae42045d3ab7eb90975ac18afe7a3f5f0b52ce766
|