Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/zenlib/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from zenlib.types import NoDupFlatList, validatedDataclass
from zenlib.namespace import nsexec

# Global setting for color logging
_ZENLIB_COLOR_TEXT = True

__all__ = [
"colorize",
"ColorLognameFormatter",
Expand All @@ -16,4 +19,5 @@
"update_init",
"walk_dict",
"check_dict",
"_ZENLIB_COLOR_TEXT",
]
5 changes: 3 additions & 2 deletions src/zenlib/logging/colorlognameformatter.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
__author__ = "desultory"
__version__ = "3.1.0"
__version__ = "3.2.0"

from logging import Formatter

from zenlib.util.colorize import colorize


class ColorLognameFormatter(Formatter):
"""A logging formatter which colors the levelname of the log message.
Expand All @@ -24,7 +26,6 @@ def __init__(self, fmt="%(levelname)s | %(message)s", *args, **kwargs):
def format(self, record):
# When calling format, replace the levelname with a colored version
# Note: the string size is greatly increased because of the color codes
from zenlib.util import colorize

old_levelname = record.levelname
color_info = self.level_colors.get(record.levelname, {"color": "white"})
Expand Down
4 changes: 2 additions & 2 deletions src/zenlib/logging/loggify.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
__author__ = "desultory"
__version__ = "3.0.0"
__version__ = "3.0.1"

from zenlib.util import merge_class
from zenlib.util.merge_class import merge_class
from zenlib.logging.loggermixin import LoggerMixIn


Expand Down
12 changes: 8 additions & 4 deletions src/zenlib/logging/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,16 @@ def _logger_has_handler(logger):


def add_handler_if_not_exists(logger):
"""Adds a ColorLognameFormatter handler to the logger if it doesn't have a handler already"""
"""Adds a ColorLognameFormatter handler to the logger if it doesn't have a handler already
Coloring is diabled by the _ZENLIB_COLOR_TEXT variable in the colorize function
"""
if _logger_has_handler(logger):
return
color_stream_handler = StreamHandler()
color_stream_handler.setFormatter(ColorLognameFormatter(fmt="%(levelname)s | %(name)-42s | %(message)s"))
logger.addHandler(color_stream_handler)
stream_handler = StreamHandler()
formatter = ColorLognameFormatter(fmt="%(levelname)s | %(name)-42s | %(message)s")
stream_handler.setFormatter(formatter)

logger.addHandler(stream_handler)
logger.info("Added default handler to logger: %s", logger)


Expand Down
8 changes: 7 additions & 1 deletion src/zenlib/util/colorize.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
__version__ = "0.3.0"
__version__ = "0.4.0"


from dataclasses import dataclass
from enum import Enum

import zenlib

ANSI_START = "\x1b["


Expand Down Expand Up @@ -57,6 +60,9 @@ def __str__(self):


def colorize(text: str, color="white", *args, **kwargs) -> str:
if not zenlib._ZENLIB_COLOR_TEXT:
return text

try:
color_code = Colors[color.upper()].value
except (KeyError, AttributeError):
Expand Down
14 changes: 10 additions & 4 deletions src/zenlib/util/main_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@
Functions to help with the main()
"""

__version__ = "1.4.1"
__version__ = "1.6.0"

from argparse import ArgumentError, ArgumentParser, Namespace
from importlib.metadata import version
from logging import FileHandler, Formatter, StreamHandler, getLogger
from logging import FileHandler, StreamHandler, getLogger
from sys import argv

import zenlib
from zenlib.logging.colorlognameformatter import ColorLognameFormatter


def get_base_args():
return [
Expand Down Expand Up @@ -45,7 +48,6 @@ def get_kwargs_from_args(args, logger=None, base_kwargs={}, drop_base=True):

def process_args(argparser, logger=None, strict=False):
"""Process argparser args, optionally configuring a logger."""
from zenlib.logging import ColorLognameFormatter

if strict:
args = argparser.parse_args()
Expand Down Expand Up @@ -76,7 +78,11 @@ def process_args(argparser, logger=None, strict=False):
format_str += "%(levelname)s | %(name)-42s | %(message)s"
else:
format_str += "%(levelname)s | %(message)s"
formatter = ColorLognameFormatter(format_str) if not args.no_log_color else Formatter(format_str)

if args.no_log_color:
zenlib._ZENLIB_COLOR_TEXT = False

formatter = ColorLognameFormatter(format_str)

# Add the formatter to the first handler, or add a new handler
for handler in logger.handlers:
Expand Down