在日志方面,我的做法是这样的,既打印到终端,又输出到文件,开发环境的级别是 DEBUG,生产环境是 INFO,我最常用的一份配置文件如下:log.py
import logging
import os
import time
logger = logging.getLogger()
if not os.path.exists("logs"):
os.mkdir("logs")
logger = logging.getLogger()
logger.setLevel(logging.INFO)
ch = logging.StreamHandler()
fh = logging.FileHandler(filename=f"logs/log_{time.strftime('%Y%m%d')}.txt")
formatter = logging.Formatter(
"%(asctime)s - %(module)s - %(funcName)s - line:%(lineno)d - %(levelname)s - %(message)s"
)
formatter2 = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter2)
logger.addHandler(ch) # 将日志输出至屏幕
logger.addHandler(fh) # 将日志输出至文件
这样,在需要打印日志的地方,就可以从 log.py 中导入 logger 来使用:
from log import logger
logger.info("info")
logger.debug("debug")