Skip to main content

setup logger bb

Project description

BB LOGGER

Description

  1. Remove all logger handlers and reformat log record ( can be extended )
  2. Set noti status, controlable by arguments
  3. Override lambda raise error to critical and notice if noti status = True, optional

How

  1. call setup_logging() one time at begin of program
  2. using decorator setup_logging_dec() with each lambda

Params

default_level (int, optional): min log level. Defaults to logging.WARNING.

extend_format (str, optional): custom extend format. Defaults to None.

lambda_exec_error_log (bool, optional): log with critical level for lambda raise exception. Defaults to True. only with decorator setup_logging_dec()

default_noti_level (int, optional): all log from this level will be noticed if no arguments are provided. Defaults to logging.ERROR

force_noti_level (int, optional): force all log with this level to be noticed. Defaults to logging.ERROR.

Notes

(*) extend_format logic

logging format details can be here

  • BASE_FORMAT = '[%(levelname)s]'
  • DEFAULT_FORMAT = BASE_FORMAT + ' %(message)s'
  • if extend_format is specified, FORMAT will be : BASE_FORMAT + '\t'+ extend_format
  • else DEFAULT_FORMAT wil be used  

EXAMPLES

1. Remove all logger handlers and reformat log record

sample code

import logging
from bb_logger import setup_logging

logging.error('before setup, using old handler format')
# setup log with default 
setup_logging()
logging.error('after setup, using new default format')
# setup logger with extend format
setup_logging(extend_format="%(asctime)s - %(message)s")
logging.error('after setup with custom format, using extended format')

output

ERROR:root:before setup, using old handler format
[ERROR] after setup, using new default format
[ERROR]	2021-01-10 18:18:46,202 - after setup with custom format, using extended format

2. Set noti status

ADD NOTI STATUS TO LOG BASE ON CONDITIONS

(*) force_noti_level : default is logging.ERROR

EXAMPLE

import logging
from bb_logger import setup_logging
logging.error('before setup')
# setup log with default 
setup_logging()
logging.error('after setup, noti status was added')

# specify if this log will be noticed or not
logging.warning('warning with noti True', {'noti': True})
logging.warning('warning with noti False', {'noti': False})

# set force noti level
setup_logging(default_level=logging.INFO, force_noti_level=logging.INFO)
logging.info('info with noti True', {'noti': True})
logging.info('info with noti False stil have NOTI status', {'noti': False})

output

[ERROR]	2021-02-06T08:01:56.558Z	c4c3fad9-eacf-41f3-bba1-15b119bfd980	before setup
[ERROR] [NOTI] after setup, noti status was added
[WARNING] [NOTI] warning with noti True
[WARNING] [NOT_NOTI] warning with noti False
[INFO] [NOTI] info with noti True
[INFO] [NOTI] info with noti False stil have NOTI status

Override lambda raise error to critical

EXAMPLE

from bb_logger import setup_logging,setup_logging_dec

@setup_logging_dec(default_level=logging.INFO,lambda_exec_error_log=True, force_noti_level=logging.ERROR)
def lambda_handler(event, context):
    a = 1 / 0

output

[CRITICAL] [NOTI] division by zero
Traceback (most recent call last):
  File "/var/task/bb_logger.py", line 98, in wrapper
    func(*args, **kwargs)
  File "/var/task/lambda_function.py", line 12, in lambda_handler
    a = 1/ 0

exception raise by lambda will be set at Critical level and noticed

NOTE

CloudWatch now accept following pattern:

  • [LEVEL] [NOTI]

Example:

  • "[ERROR] [NOTI] error log" will be matched

  • "some thing before [ERROR] [NOTI] error log" will be matched

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

bb_logger-0.3.3.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

bb_logger-0.3.3-py2.py3-none-any.whl (6.2 kB view hashes)

Uploaded Python 2 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