Skip to main content

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

Metadata

Release files for bb-logger 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bb-logger 0.3.3
File Size Uploaded Provenance
bb_logger-0.3.3.tar.gz 5.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bb-logger 0.3.3
File Interpreter ABI Platform
bb_logger-0.3.3-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 12.0 kB

Release files / bb_logger-0.3.3.tar.gz

Download URL bb_logger-0.3.3.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b75a337bc33cbc78b333f92523b8106a172cd0a7a3fb11f559c685e0b874b04b
BLAKE2b-256 checksum
How to use checksums
1d7a8ff21a663f5ed7d40af79f356f330f8f1233b7d44d1d0444cb79e40c23d4
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / bb_logger-0.3.3-py2.py3-none-any.whl

Download URL bb_logger-0.3.3-py2.py3-none-any.whl
Size 6.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a61b0238712b7299d276aa13abd898b627b705760b96b90e9da1cfbcd81bdcca
BLAKE2b-256 checksum
How to use checksums
17b42c64651583a27d9dbaab451b8c7c47d8ee5eb316dffedb4a80d70a2d19a9
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for bb-logger 0.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page