Files
room_control/console.py
John Lancaster 17670b983e button work
2024-03-06 20:17:38 -06:00

45 lines
1.2 KiB
Python

import logging
from appdaemon.adapi import ADAPI
from appdaemon.logging import AppNameFormatter
from rich.console import Console
from rich.highlighter import NullHighlighter
from rich.logging import RichHandler
from rich.theme import Theme
console = Console(
width=150,
theme=Theme({'appname': 'italic bright_cyan'}),
)
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='{'))
def init_logging(self: ADAPI, level):
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.log(f'Added rich handler for [bold green]{self.logger.name}[/]')
# self.log(f'Formatter for RichHandler: {handler.formatter}')
def deinit_logging(self: ADAPI):
self.logger.setLevel(logging.NOTSET)
self.logger.propagate = True
for h in self.logger.handlers:
if isinstance(h, RichHandler):
self.logger.removeHandler(h)
self.log('Removed RichHandler')