建一个common/log/logger.py文件进行一下log相关配置
import logging
import os
import time
class Config():
# 创建logger实例
logger = logging.getLogger()
# 设置logger的日志级别
logger.setLevel(logging.DEBUG)
# 添加控制台管理器(即控制台展示log内容)
ls = logging.StreamHandler()
ls.setLevel(logging.DEBUG)
# 设置log的记录格式
formatter = logging.Formatter('%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]''-%(levelname)s: %(message)s')
# 把格式添加到控制台管理器,即控制台打印日志
ls.setFormatter(formatter)
# 把控制台添加到logger
logger.addHandler(ls)
# 先在项目目录下建一个logs目录,来存放log文件(可自定义路径)
logdir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), 'logs')
if not os.path.exists(logdir):
os.mkdir(logdir)
# 再在logs目录下创建以日期开头的.log文件
logfile = os.path.join(logdir, time.strftime('%Y-%m-%d %H:%M:%S') + '.log')
# 添加log的文件处理器,并设置log的配置文件模式编码
lf = logging.FileHandler(filename=logfile, encoding='utf8')
# 设置log文件处理器记录的日志级别
lf.setLevel(logging.DEBUG)
# 设置日志记录的格式
lf.setFormatter(formatter)
# 把文件处理器添加到log
logger.addHandler(lf)
def get_config(self):
return self.logger
#这里创建了一个logger对象,其他文件使用时,只需导入即可,如from common.log.logger import logger
logger = Config().get_config()
# 测试logger
if __name__ == '__main__':
logger = Config().get_config()
logger.debug('hhhhhhhhhhhh')
# logger.info('222222222222')
# logger.warning('3333333333333')
# logger.error('4444444444444')
其他文件加log,使用示例
from common.log.logger import logger
def addtwo(one,another):
logger.debug(f"进入addtwo,one is {one} another is{another}")
sum = one + another
return sum