logger.py 2.38 KB
Newer Older
Smile's avatar
Smile committed
1
2
import logging
import os
3
import time
Smile's avatar
Smile committed
4
5
6


def _transform_log_level(str_level):
7
    if str_level == "info":
Smile's avatar
Smile committed
8
        return logging.INFO
9
    elif str_level == "warning":
Smile's avatar
Smile committed
10
        return logging.WARNING
11
    elif str_level == "critical":
Smile's avatar
Smile committed
12
        return logging.CRITICAL
13
    elif str_level == "debug":
Smile's avatar
Smile committed
14
        return logging.DEBUG
15
    elif str_level == "error":
Smile's avatar
Smile committed
16
17
        return logging.ERROR
    else:
18
        raise KeyError("Log level error")
Smile's avatar
Smile committed
19
20
21


class LightLogging(object):
22
    def __init__(self, log_path=None, log_name="lightlog", log_level="debug"):
Smile's avatar
Smile committed
23
24
25
26

        log_level = _transform_log_level(log_level)

        if log_path:
27
28
            if not log_path.endswith("/"):
                log_path += "/"
Smile's avatar
Smile committed
29
30
31
            if not os.path.exists(log_path):
                os.mkdir(log_path)

32
33
34
35
36
37
38
39
40
            if log_name.endswith("-") or log_name.endswith("_"):
                log_name = (
                    log_path
                    + log_name
                    + time.strftime(
                        "%Y-%m-%d-%H:%M", time.localtime(time.time())
                    )
                    + ".log"
                )
Smile's avatar
Smile committed
41
            else:
42
43
44
45
46
47
48
49
50
                log_name = (
                    log_path
                    + log_name
                    + "_"
                    + time.strftime(
                        "%Y-%m-%d-%H-%M", time.localtime(time.time())
                    )
                    + ".log"
                )
Smile's avatar
Smile committed
51

52
53
54
55
56
57
58
59
60
61
62
            logging.basicConfig(
                level=log_level,
                format="%(asctime)s %(levelname)s: %(message)s",
                datefmt="%Y-%m-%d-%H:%M",
                handlers=[
                    logging.FileHandler(log_name, mode="w"),
                    logging.StreamHandler(),
                ],
            )
            logging.info("Start Logging")
            logging.info("Log file path: {}".format(log_name))
Smile's avatar
Smile committed
63
64

        else:
65
66
67
68
69
70
71
            logging.basicConfig(
                level=log_level,
                format="%(asctime)s %(levelname)s: %(message)s",
                datefmt="%Y-%m-%d-%H:%M",
                handlers=[logging.StreamHandler()],
            )
            logging.info("Start Logging")
Smile's avatar
Smile committed
72
73
74
75
76
77
78
79
80
81
82
83
84
85

    def debug(self, msg):
        logging.debug(msg)

    def info(self, msg):
        logging.info(msg)

    def critical(self, msg):
        logging.critical(msg)

    def warning(self, msg):
        logging.warning(msg)

    def error(self, msg):
86
        logging.error(msg)