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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size python_cloud_logger-0.1.1-py3-none-any.whl (3.6 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size python-cloud-logger-0.1.1.tar.gz (3.0 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for python_cloud_logger-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84b1691c2f2550fccae7c3aebab657868876d7dc87cec4302911eab2166efcaf |
|
MD5 | 255fe154467710a8c43585545c166fe8 |
|
BLAKE2-256 | 569e03e80b0339c56c362288959ebb439a6fb77d0c8e99915338b2c4e2ef9c7f |
Hashes for python-cloud-logger-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66935895a0661b9824042cb689ef96ce97e1aba70b2ee51105ac5b32c1ac2fc0 |
|
MD5 | e591c17b3c102d78ac56200bf3a84d58 |
|
BLAKE2-256 | 0d708ba428a4a815a29ca7ba1dd03b07ead1b10a6479ec2854b9f299448e01ce |