📦 EqualifyEverything / process-controller

📄 watch.py · 42 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42import logging


class FlaskOutputHandler(logging.Handler):
    def __init__(self, output_list):
        super().__init__()
        self.output_list = output_list

    def emit(self, record):
        msg = self.format(record)
        self.output_list.append(msg)



def setup_custom_logger(output_list=None):
    logger = logging.getLogger("A11y🪵")
    if not logger.hasHandlers():
        logger.setLevel(logging.DEBUG)

        formatter = logging.Formatter('%(asctime)s - %(name)s - [%(levelname)s] - %(message)s')

        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        ch.setFormatter(formatter)
        logger.addHandler(ch)

        if output_list is not None:
            fh = FlaskOutputHandler(output_list)
            fh.setLevel(logging.DEBUG)
            fh.setFormatter(formatter)
            logger.addHandler(fh)

    return logger


logger = setup_custom_logger()


def configure_logger(output_list=None):
    global logger
    logger = setup_custom_logger(output_list)