Extensions for the original logging module
Project description
JSONFormatter
Format logs as JSON lines
ThreadedHandler
Container of handlers for logging in a separate thread
Configuration example
in code
import logging
from logging_extension import ThreadedHandler, JSONFormatter
logging.basicConfig(level=logging.DEBUG)
logging.getLogger().handlers.clear()
handler = logging.StreamHandler()
formatter = JSONFormatter(fmt_keys=dict(
logger='name',
level='levelno'
))
handler.setFormatter(formatter)
threaded_handler = ThreadedHandler(stream_handler=handler)
logging.getLogger().addHandler(threaded_handler)
logging.getLogger().debug('debug_msg', extra={'extra': 'value'})
{"logger": "root", "level": 10, "created": "2024-05-12T11:43:19.171675+00:00", "message": "debug_msg", "extra": "value"}
via config
import logging.config
# Usually defined in .json or .yml file
config = {
"version": 1,
"disable_existing_handlers": False,
"formatters": {
"json_formatter": {
"()": "logging_extension.JSONFormatter",
"fmt_keys": {
"name": "name",
"level": "levelno",
"line": "lineno"
}
}
},
"handlers": {
"stream_handler": {
"class": "logging.StreamHandler",
"stream": "ext://sys.stdout",
"formatter": "json_formatter"
},
"threaded_handler": {
"()": "logging_extension.ThreadedHandler",
"stream_handler": "cfg://handlers.stream_handler"
}
},
"loggers": {
"root": {
"level": "DEBUG",
"handlers": [
"threaded_handler"
]
}
}
}
logging.config.dictConfig(config)
logging.getLogger().debug('debug_msg', extra={'extra': 'value'})
{"name": "root", "level": 10, "line": 39, "created": "2024-05-12T11:43:19.179082+00:00", "message": "debug_msg", "extra": "value"}
BelowLevelFilter
Allows logs only below a specified level
Example
from logging_extension import BelowLevelFilter
level_filter = BelowLevelFilter(level=logging.ERROR)
logging.getLogger().addFilter(level_filter)
logging.getLogger().addHandler(logging.StreamHandler())
logging.getLogger().error('error_msg')
logging.getLogger().warning('warning_msg')
warning_msg
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
Close
Hashes for logging_extension-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a282115dfde373462b23621a1f5cf53842f9318d9da3c8f1179caee10374f79 |
|
MD5 | 264161d52502473486a74cc0510a794f |
|
BLAKE2b-256 | ea91aa6ad02e927017aa6bc3a151414f013c5112fc748da643c53891b5fe2222 |