Skip to main content

Simple tool for standardizing logging to JSON.

Project description

json-logger

Import into your Python project to standardize logs to JSON format. Works well with AWS CloudWatch and AWS Lambda Functions.

Installation

pip install -U bazze-json-logger

Usage

This package sets up a JSON formatter for the Python root logger. In order for this to work properly, be sure to run this package before setting up any new loggers.

import logging

import bazze_json_logger

logging.basicConfig(level=logging.INFO)

bazze_json_logger.setup()

logger = logging.getLogger()
logger.info('Hello World!')

Output

>>> {"timestamp": "2020-09-30T00:15:39.667110Z", "level": "INFO", "name": "root", "message": "Hello World!", "schema_version": "0.0.2"}

AWS Lambda Integration

When using AWS Lambda it is nice to have the aws_request_id as part of the JSON object for tracing purposes. To do this we need to pass it into the setup() method.

import logging

import bazze_json_logger

logging.basicConfig(level=logging.INFO)


def lambda_handler(event, context):
    bazze_json_logger.setup(aws_request_id=context.aws_request_id)
    logger = logging.getLogger()
    logger.info('Hello World!')

Viewing the logs on AWS

Logs can be viewed locally in your terminal when testings. When the application is deployed, they will show up in the CloudWatch group in JSON format.

To view the CloudWatch logs in your console:

Install awslogs

pip install -U awslogs

Export AWS_PROFILE

export AWS_PROFILE=bazze

To view all log groups:

awslogs groups

To tail your log group:

awslogs get /aws/lambda/your-function --since 5m --watch

To query and aggregate the logs, I recommend using CloudWatch Insights.

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

bazze-json-logger-0.0.3.tar.gz (2.6 kB view hashes)

Uploaded Source

Built Distribution

bazze_json_logger-0.0.3-py3-none-any.whl (3.8 kB view hashes)

Uploaded Python 3

Supported by

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