From 96be16e0bbd41ce200bbdfbf942f4c98e4944348 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 9 Mar 2024 19:56:34 -0600 Subject: [PATCH] added the UnMarkupFormatter --- console.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/console.py b/console.py index 1bac19f..96dc96a 100644 --- a/console.py +++ b/console.py @@ -1,4 +1,5 @@ import logging +import re from appdaemon.adapi import ADAPI from appdaemon.logging import AppNameFormatter @@ -13,24 +14,36 @@ console = Console( ) -handler = RichHandler( - console=console, - highlighter=NullHighlighter(), - markup=True, - show_path=False, - omit_repeated_times=False, - log_time_format='%Y-%m-%d %I:%M:%S %p', -) +class UnMarkupFormatter(AppNameFormatter): + md_regex = re.compile(r'(?P\[.*?\])(?P.*?)(?P\[\/\])') + + def format(self, record: logging.LogRecord): + result = super().format(record) + return self.md_regex.sub(r'\g', result) -handler.setFormatter(AppNameFormatter(fmt='[appname]{appname}[/] {message}', style='{')) +def create_handler() -> RichHandler: + handler = RichHandler( + console=console, + highlighter=NullHighlighter(), + markup=True, + show_path=False, + omit_repeated_times=False, + log_time_format='%Y-%m-%d %I:%M:%S %p', + ) + handler.setFormatter(AppNameFormatter(fmt='[appname]{appname}[/] {message}', style='{')) + return handler def init_logging(self: ADAPI, level): + stream_handler = logging.getLogger('AppDaemon').handlers[0] + og_formatter = stream_handler.formatter + stream_handler.setFormatter(UnMarkupFormatter(fmt=og_formatter._fmt, datefmt=og_formatter.datefmt, style='{')) + if not any(isinstance(h, RichHandler) for h in self.logger.handlers): self.logger.propagate = False self.logger.setLevel(level) - self.logger.addHandler(handler) + self.logger.addHandler(create_handler()) self.log(f'Added rich handler for [bold green]{self.logger.name}[/]') # self.log(f'Formatter for RichHandler: {handler.formatter}')