setup logger bb
Project description
BB LOGGER
Description
- Remove all logger handlers and reformat log record ( can be extended )
- Set noti status, controlable by arguments
- Override lambda raise error to critical and notice if noti status = True, optional
How
- call setup_logging() one time at begin of program
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b75a337bc33cbc78b333f92523b8106a172cd0a7a3fb11f559c685e0b874b04b |
|
MD5 | a24224c5c12fdf2dba1a570d380b9fb6 |
|
BLAKE2b-256 | 1d7a8ff21a663f5ed7d40af79f356f330f8f1233b7d44d1d0444cb79e40c23d4 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a61b0238712b7299d276aa13abd898b627b705760b96b90e9da1cfbcd81bdcca |
|
MD5 | a58ef1bfefe2fef711287b33e6eaf75e |
|
BLAKE2b-256 | 17b42c64651583a27d9dbaab451b8c7c47d8ee5eb316dffedb4a80d70a2d19a9 |