-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog_tool.py
More file actions
38 lines (31 loc) · 1.08 KB
/
log_tool.py
File metadata and controls
38 lines (31 loc) · 1.08 KB
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
from typing import Optional
import datetime
import logging
import os
def get_log_file_name():
"""Make 'logs' dir and generate log name e.g. 'logs/2021-01-26_10-11-12.123.log'"""
logDir = "logs"
localTimeZone = datetime.datetime.now().astimezone().tzinfo
startDatetime = datetime.datetime.now(localTimeZone)
os.makedirs(logDir, exist_ok=True)
filename = os.path.join(
logDir, startDatetime.strftime("%Y-%m-%d_%H-%M-%S.%f") + ".log"
)
return filename
def setup_logger(logFileName: Optional[str] = None, modname=__name__):
logger = logging.getLogger(modname)
logger.setLevel(logging.DEBUG)
datefmt = "%Y-%m-%d %H:%M:%S"
formatter = logging.Formatter(
"%(asctime)s.%(msecs)03d\t%(levelname)s\t%(message)s", datefmt
)
sh = logging.StreamHandler()
sh.setLevel(logging.DEBUG)
sh.setFormatter(formatter)
logger.addHandler(sh)
if logFileName:
fh = logging.FileHandler(logFileName, encoding="utf-8")
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger