Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-cloud-logger-0.1.1.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

python_cloud_logger-0.1.1-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file python-cloud-logger-0.1.1.tar.gz.

File metadata

  • Download URL: python-cloud-logger-0.1.1.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for python-cloud-logger-0.1.1.tar.gz
Algorithm Hash digest
SHA256 66935895a0661b9824042cb689ef96ce97e1aba70b2ee51105ac5b32c1ac2fc0
MD5 e591c17b3c102d78ac56200bf3a84d58
BLAKE2b-256 0d708ba428a4a815a29ca7ba1dd03b07ead1b10a6479ec2854b9f299448e01ce

See more details on using hashes here.

File details

Details for the file python_cloud_logger-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: python_cloud_logger-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for python_cloud_logger-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84b1691c2f2550fccae7c3aebab657868876d7dc87cec4302911eab2166efcaf
MD5 255fe154467710a8c43585545c166fe8
BLAKE2b-256 569e03e80b0339c56c362288959ebb439a6fb77d0c8e99915338b2c4e2ef9c7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page