Skip to main content

PColorLogging

The powerful python logging, you can create colorful logging and easy to add logging level or record attribute

demo

Reference


Installation

PColorLogging can be installed using pip as follows:

pip install PColorLogging

Usage

Here’s an example of how easy it is to get started:

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

And then, you want to add maker function to ExtraAdapterLogger, you can use set_maker function

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)

Full example in here

Metadata

Release files for PColorLogging 0.0.34

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

Source distribution (sdist)

Source distribution for PColorLogging 0.0.34
File Size Uploaded
PColorLogging-0.0.34.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PColorLogging 0.0.34
File Interpreter ABI Platform
PColorLogging-0.0.34-py3-none-any.whl Python 3 none any Details

Total release size: 18.8 kB

Release files / PColorLogging-0.0.34.tar.gz

Download URL PColorLogging-0.0.34.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5293883780c640d9eb909a26acb46ea3c99c5573a542ca6de992261f9e2ed456
BLAKE2b-256 checksum
How to use checksums
5ec7651380a2dcd90ad081121db0443c4e7e3a6ea8419a94e16c2f6bd9c9b268
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.9

Release files / PColorLogging-0.0.34-py3-none-any.whl

Download URL PColorLogging-0.0.34-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eef298bf252491ba082a944195dd61ad51c8e32fa08c125a7bd392c353e67fdb
BLAKE2b-256 checksum
How to use checksums
0cfd71e61291b5a1d2ef6f32c8ad8c42889c88d72ac5367e314e5edbf6deda69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.9

Release history Release notifications | RSS feed

This release

0.0.34 This release

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.15

2 release files

0.0.1

2 release files

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