summaryrefslogtreecommitdiff
path: root/Omni/Log.py
blob: e644a1adc07d0d4b57c7bf79b18300ce8ba365fd (plain)
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
"""Setup logging like Omni/Log.hs."""

import logging
import typing


class LowerFormatter(logging.Formatter):
    """A logging formatter that formats logs how I like."""

    def format(self: "LowerFormatter", record: typing.Any) -> typing.Any:
        """Use the format I like for logging."""
        record.levelname = record.levelname.lower()
        return super(logging.Formatter, self).format(record)  # type: ignore[misc]


def setup(level: int = logging.INFO) -> logging.Logger:
    """Run this in your __main__ function."""
    logging.basicConfig(
        level=level,
        format="%(levelname)s:  %(name)s:  %(message)s",
    )
    logging.addLevelName(logging.DEBUG, "dbug")
    logging.addLevelName(logging.ERROR, "fail")
    logging.addLevelName(logging.INFO, "info")
    logger = logging.getLogger(__name__)
    formatter = LowerFormatter()
    handler = logging.StreamHandler()
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    return logger


if __name__ == "__main__":
    setup()
    logging.debug("i am doing testing")