Logging日志封装:为了提高开发效率,我们可以根据自己项目的需要分装日志模块。
import logging
class Log():
def __init__(self,log_path,consloe_fmt,file_fmt):
"""
:param log_path:存放日志文件目录
:param consloe_fmt:定义输出到控制台的格式
:param file_fmt:定义写入日志文件的格式
"""
self.log_path=log_path
self.consloe_fmt=consloe_fmt
self.file_fmt = file_fmt
self.log_level = "DEBUG" #一级权限:设置日志整体日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
self.consloe_level = "DEBUG" #二级权限:设置输出到控制台的日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
self.file_level = "DEBUG" #二级权限:设置写入日志文件的日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
self.logger = self.get_logger()
def get_format_handler(self,fmt):
"""
:param fmt:定义格式处理器格式
:return: format_handler
"""
format_handler=logging.Formatter(fmt)
return format_handler
def get_consloe_handler(self):
"""
:return: consloe_handler
"""
consloe_handler=logging.StreamHandler()
consloe_format_handler=self.get_format_handler(self.consloe_fmt)
consloe_handler.setFormatter(consloe_format_handler)
consloe_handler.setLevel(self.consloe_level)
return consloe_handler
def get_file_handler(self):
"""
:return: file_handler
"""
file_handler=logging.FileHandler(self.log_path,mode='a', encoding="utf-8")
file_format_handler=self.get_format_handler(self.file_fmt)
file_handler.setFormatter(file_format_handler)
file_handler.setLevel(self.file_level)
return file_handler
def get_logger(self):
"""
:return: logger日志实例对象
"""
logger=logging.getLogger()
logger.addHandler(self.get_consloe_handler())
logger.addHandler(self.get_file_handler())
logger.setLevel(self.log_level)
return logger
demo使用教程:
(1)参数说明:
import log
log_path=r"./log.txt"
consloe_fmt="[%(asctime)s]-[%(levelname)s]-[%(filename)s] : %(message)s"
file_fmt="[%(asctime)s]-[%(levelname)s]: %(message)s"
参数 | 说明 | 变量类型 |
---|---|---|
log_path | 存放日志文件目录 | 字符串 |
consloe_fmt | 定义输出到控制台的格式 | 字符串 |
file_fmt | 定义写入日志文件的格式 | 字符串 |
(2)生成实例
logger=Log(log_path,consloe_fmt,file_fmt).logger
(3)生产日志信息【根据项目需要】
logger.debug("这是【debug】信息")
logger.info("这是【info】信息")
logger.warning("这是【waring】信息")
logger.error("这是【error】信息")
logger.critical("这是【critical】信息")
(4)控制台和日志文件效果:
本文含有隐藏内容,请 开通VIP 后查看