summaryrefslogtreecommitdiff
path: root/Omni/Log.py
blob: 2fbd0074770fc83cd02eb61ec5b152f3e131792b (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."""

# noqa: builtin-attribute-shadowing
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() -> None:
    """Run this in your __main__ function."""
    logging.basicConfig(
        level=logging.DEBUG,
        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)


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