文件路径:项目目录/common/my_logger.py
config.ini文件下log配置:
my_logger.py
import logging
import os
from common.path_handler import logs_dir
from common.config_handler import conf
class MyLogger(logging.Logger):
def __init__(self,file=None):
# 设置输出级别、输出渠道、输出日志格式
# super().__init__(name,level)
super().__init__(conf.get("log","name"),conf.get("log","level"))
# 日志格式
fmt = '%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d line:%(message)s'
formatter = logging.Formatter(fmt)
# 控制台渠道
handle1 = logging.StreamHandler()
handle1.setFormatter(formatter)
self.addHandler(handle1)
if file:
# 文件渠道
handle2 = logging.FileHandler(file,encoding="utf-8")
handle2.setFormatter(formatter)
self.addHandler(handle2)
# 是否需要写入文件
if conf.getboolean("log","file_ok"):
file_name = os.path.join(logs_dir,conf.get("log","file_name"))
else:
file_name = None
# 实例化
logger = MyLogger(file_name)
if __name__ == '__main__':
logger.info("测试日志********")