# 日志级别 debug info waring error critical
#从左 往右越来越严重
#root logger 收集日志的容器 如果你不定义一个logger 那么就默认使用root logger
#输出渠道 handlers 渠道 控制台console 文本:file_handler 渠道默认是控制台
#pre-defined format 按照提前设置好的格式进行输出 级别: 日志收集器的名字:日志信息
import logging,os
class logger:
def logger(self, level, msg):
logger = logging.getLogger("qm")
logger.setLevel("DEBUG")
ch = logging.StreamHandler() # 创建一个输出到控制台的渠道
formatter = logging.Formatter('%(asctime)s-'
'%(levelname)s-'
'%(filename)s-'
'[line:%(lineno)d]-'
'%(name)s-'
'日志信息:%(message)s'
)
root_path = os.path.abspath(os.path.dirname(__file__)).split('shippingSchedule')[0]
fh = logging.FileHandler(root_path + "/log.txt", encoding="utf-8") # 设置输出到文件
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# 设置收集级别
fh.setLevel("DEBUG")
ch.setLevel("DEBUG")
# 日志收集器与输出渠道对接
logger.addHandler(fh)
#
logger.addHandler(ch)
if (level == "DEBUG"):
logger.debug(msg)
elif level == 'INFO':
logger.info(msg)
elif level == 'WARNING':
logger.warning(msg)
elif level == 'ERROR':
logger.error(msg)
else:
logger.critical(msg)
# 每次收集日志后记得移除掉日志收集器
logger.removeHandler(ch)
logger.removeHandler(fh)
ch.close()
fh.close() # 需要手动关闭收集器 不关闭就会在调用您的时候就会报文件未关闭 我也不知道为什么 哪位大佬知道么
def debug(self, msg):
self.logger("DEBUG", msg)
def info(self, msg):
self.logger("INFO", msg)
def warning(self, msg):
self.logger("WARNING", msg)
def error(self, msg):
self.logger("ERROR", msg)
if __name__ == '__main__':
logger=MyLogger()
logger.debug("12231232")
python 设置日志级别输出渠道/设置日志输出格式
最新推荐文章于 2024-05-10 05:53:39 发布