This is powerful logging
Project description
PColorLogging
The powerful python logging, you can create colorful logging and easy to add logging level or record attribute
Getting Start
Basic Usage
import logging
from PColorLogging import DEBUG, INFO, ERROR, WARNING, CRITICAL, add_level_name
from PColorLogging.Drawer.color import PColor, TextMode
from PColorLogging.Formatter.colored_formatter import ColoredFormatter
add_level_name(25, "custom")
colored_formatter = ColoredFormatter(f"[%(asctime)s] %(levelname)s: %(message)s", [
{"config": {"message": [PColor.WHITE]}, "level": [DEBUG]},
{"config": {"message": [PColor.GREEN], "custom": [PColor.B_WHITE]}, "level": [INFO]},
{"config": {"message": [PColor.YELLOW]}, "level": [WARNING]},
{"config": {"message": [PColor.RED, TextMode.UNDERLINE]}, "level": [ERROR]},
{"config": {"message": [PColor.CYAN, TextMode.CROSS]}, "level": [CRITICAL]},
{"config": {"message": [PColor.PURPLE]}, "level": [25]},
{"config": {"asctime": [PColor.BLUE, PColor.B_WHITE]}, "level": [DEBUG, INFO, WARNING, ERROR, CRITICAL, 25]}
])
logger = logging.getLogger()
console_handler = logging.StreamHandler()
console_handler.setFormatter(colored_formatter)
logger.addHandler(console_handler)
logger.setLevel(DEBUG)
logger.debug("this is debug")
logger.info("this is info")
logger.warning("this is warning")
logger.error("this is error")
logger.critical("this is critical")
logger.log(25, "this is custom")
If you want to add custom record attribute, you should use ExtraAdapterLogger
import logging
from PColorLogging import DEBUG, INFO, ERROR, WARNING, CRITICAL, add_level_name
from PColorLogging.Drawer.color import PColor, TextMode
from PColorLogging.Formatter.colored_formatter import ColoredFormatter
from PColorLogging.Logger.Adapter.extra_adapter_logger import ExtraAdapterLogger
add_level_name(25, "custom")
colored_formatter = ColoredFormatter(f"[%(asctime)s] %(levelname)s: %(att1)s %(att2)s %(message)s", [
{"config": {"message": [PColor.WHITE]}, "level": [DEBUG]},
{"config": {"message": [PColor.GREEN], "custom": [PColor.B_WHITE]}, "level": [INFO]},
{"config": {"message": [PColor.YELLOW]}, "level": [WARNING]},
{"config": {"message": [PColor.RED, TextMode.UNDERLINE]}, "level": [ERROR]},
{"config": {"message": [PColor.CYAN, TextMode.CROSS]}, "level": [CRITICAL]},
{"config": {"message": [PColor.PURPLE]}, "level": [25]},
{"config": {"asctime": [PColor.BLUE, PColor.B_WHITE]}, "level": [DEBUG, INFO, WARNING, ERROR, CRITICAL, 25]}
])
console_handler = logging.StreamHandler()
console_handler.setFormatter(colored_formatter)
extra_logger = ExtraAdapterLogger("logger", {"att1": "", "att2": ""})
extra_logger.add_handler(console_handler)
extra_logger.setLevel(DEBUG)
extra_logger.debug("this is debug", extra={"att1": "att1-debug"})
extra_logger.info("this is info", extra={"att2": "att2-info"})
extra_logger.warning("this is warning", extra={"att1": "att1", "att2": "att2"})
extra_logger.error("this is error")
extra_logger.critical("this is critical")
extra_logger.log(25, "this is custom")
You can add maker function to ExtraAdapterLogger by use set_maker
def makeup(base_extra):
if "att1" in base_extra:
if base_extra['att1'] == "att1-debug":
return {"att1": [PColor.GREEN, PColor.B_YELLOW]}
if "att2" in base_extra:
if base_extra['att2'] == "att2-info":
return {"att2": [PColor.B_CYAN, PColor.YELLOW]}
return None
extra_logger.set_maker(makeup)
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
PColorLogging-0.0.32.tar.gz
(7.2 kB
view hashes)
Built Distribution
Close
Hashes for PColorLogging-0.0.32-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dba13fdb05b6794bb18394b1a5cf266df7a8cc3b1fcea1005cf0d71a28551acf |
|
MD5 | b76035f99f1a8e29e67e52a5d6a0b040 |
|
BLAKE2b-256 | c396cbcbca6f37cd2e0510be4ae6479981bf4c34e1d0d9ce6e8f9a1c1634f4f3 |