|
13 | 13 | logger = logging.getLogger(__name__)
|
14 | 14 |
|
15 | 15 |
|
16 |
| -def getlog(env, name): |
| 16 | +def getlog(env:str, name:str): |
17 | 17 | exist = name in logging.Logger.manager.loggerDict
|
18 | 18 | rs_logger = logging.getLogger(name)
|
19 | 19 | if not exist:
|
20 | 20 | logger.info(f"create logger with {env=}, {name=}")
|
21 |
| - if env in ["dev", "local"]: |
| 21 | + if env.lower() in ["dev", "local"]: |
22 | 22 | rs_logger.propagate = False
|
23 | 23 | rs_logger.setLevel(logging.DEBUG)
|
24 |
| - streamHandler = logging.StreamHandler() |
25 |
| - streamHandler.setFormatter(fmt=logging.Formatter( |
| 24 | + stream_handler = logging.StreamHandler() |
| 25 | + stream_handler.setFormatter(fmt=logging.Formatter( |
26 | 26 | "%(asctime)s [%(levelname)s][%(filename)s:%(lineno)d]:%(message)s", datefmt='%Y-%m-%d %H:%M:%S'))
|
27 |
| - rs_logger.addHandler(streamHandler) |
| 27 | + rs_logger.addHandler(stream_handler) |
28 | 28 | else:
|
29 | 29 | rs_logger.propagate = False
|
30 | 30 | rs_logger.setLevel(logging.INFO)
|
31 |
| - streamHandler = logging.StreamHandler() |
32 |
| - streamHandler.setFormatter(fmt=logging.Formatter( |
| 31 | + stream_handler = logging.StreamHandler() |
| 32 | + stream_handler.setFormatter(fmt=logging.Formatter( |
33 | 33 | "%(asctime)s [%(levelname)s]%(message)s", datefmt='%Y-%m-%d-%H:%M:%S'))
|
34 |
| - rs_logger.addHandler(streamHandler) |
| 34 | + rs_logger.addHandler(stream_handler) |
35 | 35 |
|
36 | 36 | return rs_logger
|
37 | 37 |
|
| 38 | +get_log = getlog |
| 39 | + |
38 | 40 |
|
39 | 41 | _FMT_MAP = {
|
| 42 | + "raw": logging.Formatter("%(message)s"), |
40 | 43 | "simple": logging.Formatter(
|
41 | 44 | "%(asctime)s [%(levelname)s]%(message)s", datefmt='%Y-%m-%d-%H:%M:%S'),
|
42 | 45 | "detail": logging.Formatter(
|
43 | 46 | "%(asctime)s [%(levelname)s][%(filename)s:%(lineno)d]:%(message)s", datefmt='%Y-%m-%d %H:%M:%S')
|
| 47 | + |
44 | 48 |
|
45 | 49 | }
|
46 | 50 |
|
47 | 51 |
|
48 |
| -def getlog_detail(name, level, format_type: str = "simple", do_print=True, do_file=False, propagate=False, |
49 |
| - log_dir: str = None, file_type="time_rotate", file_config=dict(when='d', interval=1, backupCount=7)): |
| 52 | +def getlog_detail(name, level, format_type: str = "simple", |
| 53 | + do_print=True, print_format_type=None, print_level=None, |
| 54 | + do_file=False, file_format_type=None, file_level = None, file_type="time_rotate", file_config=dict(when='d', interval=1, backupCount=7), |
| 55 | + propagate=False, log_dir: str = None,): |
50 | 56 | exist = name in logging.Logger.manager.loggerDict
|
51 | 57 | rs_logger = logging.getLogger(name)
|
52 | 58 | if exist:
|
53 | 59 | return rs_logger
|
54 |
| - fmt = _FMT_MAP[format_type] |
55 |
| - |
| 60 | + |
56 | 61 | rs_logger.propagate = propagate
|
57 | 62 | rs_logger.setLevel(level)
|
58 | 63 |
|
59 | 64 | if do_print:
|
60 | 65 | streamHandler = logging.StreamHandler()
|
61 |
| - streamHandler.setFormatter(fmt=fmt) |
| 66 | + streamHandler.setFormatter(fmt=_FMT_MAP[print_format_type if print_format_type else format_type]) |
| 67 | + streamHandler.setLevel(print_level if print_level else level) |
62 | 68 | rs_logger.addHandler(streamHandler)
|
| 69 | + |
63 | 70 | if do_file:
|
64 | 71 | log_dir = log_dir or os.environ.get("LOG_DIR", "/tmp/logs")
|
65 | 72 | file_path = os.path.join(log_dir, name + ".log")
|
66 | 73 | os.makedirs(log_dir, exist_ok=True)
|
67 | 74 | if file_type == "time_rotate":
|
68 | 75 | filehandler = TimedRotatingFileHandler(file_path, **file_config)
|
69 | 76 | filehandler.suffix = "%Y-%m-%d_%H-%M-%S.log" # 设置历史文件 后缀
|
70 |
| - filehandler.setFormatter(fmt) |
| 77 | + filehandler.setFormatter(_FMT_MAP[file_format_type if file_format_type else format_type]) |
| 78 | + filehandler.setLevel(file_level if file_level else level) |
71 | 79 | rs_logger.addHandler(filehandler)
|
72 | 80 | return rs_logger
|
| 81 | + |
| 82 | + |
| 83 | +def get_file_log(name, log_dir): |
| 84 | + return getlog_detail(name=name, format_type="simple", |
| 85 | + do_print=True, print_format_type="raw", print_level=logging.INFO, |
| 86 | + do_file=True, file_format_type="detail", file_level=logging.DEBUG, log_dir=log_dir) |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | + |
0 commit comments