A logger with thread local storage for logging context in all logs without repeating the code
Project description
python-cloud-logger
A logger with thread local storage for logging context in all logs without repeating the code. This is a json logger where some contextual fields need to be included in every log per request/thread in a safe and efficient way.
Note that, all the loggers retrieved on that particular thread ( by using logging.getLogger ) will inherit the context.
Usage
from pythoncloudlogger import *
logger=logging.getLogger("myapp-logger")
logger.updateContext({
"requestId" : "1245"
})
logger.info("Request successfully processed")
logger.clearContext()
RedactJsonFormatter
This formatter is an extension of pythonjsonlogger ( https://pypi.org/project/pythonjsonlogger ). This extension will allow you to mask fields in the json before it logs. The redaction keys are case insensitive.
Usage
# Set the environment variables
#
import logging,os
from pythonjsonlogger.formatters import RedactJsonFormatter
os.environ["redactionKeys"]="x-api-key,Authorization"
os.environ["redactionString"]="<secret>"
logger = logging.getLogger(__name__)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# create formatter and add it to the handlers
formatter = pythoncloudlogger.RedactJsonFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.info({
"message" : "My request details",
"headers" : {
# will be masked
"x-api-key" : "sdfsf",
"another-level" :{
# will be masked
"Authorization" : "Bearer dfsfd"
}
}
})
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
Hashes for python-cloud-logger-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5fd1da3ba890e3b7f169a2a36aa7a1c211ca8afd27947af8807b2decd94fc09 |
|
MD5 | 18afb92453d4f24ae46afa28643ef194 |
|
BLAKE2b-256 | 34487b15b7744575af2827ae2076cf7bdb475dcedb65b3f962985be38c687c46 |
Hashes for python_cloud_logger-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89678096aa3a9df68b06d9de1d7c7940034d163fc87de9fb4d92fabf51e919c1 |
|
MD5 | f3d1e34a1664ec5d95a920ba768aec46 |
|
BLAKE2b-256 | 359db37b5aa7fd61156196ca598c22e25a51b8fedc5527c23342c157d0528e60 |