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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file bb_logger-0.3.3.tar.gz.

File metadata

  • Download URL: bb_logger-0.3.3.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.2 CPython/3.7.10

File hashes

Hashes for bb_logger-0.3.3.tar.gz
Algorithm Hash digest
SHA256 b75a337bc33cbc78b333f92523b8106a172cd0a7a3fb11f559c685e0b874b04b
MD5 a24224c5c12fdf2dba1a570d380b9fb6
BLAKE2b-256 1d7a8ff21a663f5ed7d40af79f356f330f8f1233b7d44d1d0444cb79e40c23d4

See more details on using hashes here.

File details

Details for the file bb_logger-0.3.3-py2.py3-none-any.whl.

File metadata

  • Download URL: bb_logger-0.3.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.2 CPython/3.7.10

File hashes

Hashes for bb_logger-0.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a61b0238712b7299d276aa13abd898b627b705760b96b90e9da1cfbcd81bdcca
MD5 a58ef1bfefe2fef711287b33e6eaf75e
BLAKE2b-256 17b42c64651583a27d9dbaab451b8c7c47d8ee5eb316dffedb4a80d70a2d19a9

See more details on using hashes here.

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