Python3中的logging模块可以用来记录应用程序的各种事件,包括代码执行路径、错误、警告、信息和调试信息等,使得开发者能够更好地了解应用程序的运行情况。
以下是Python3中logging模块的部分掌控:
创建Logger对象
import logging
logger = logging.getLogger(__name__)
添加Handler
logging模块的handler用来控制日志输出,常用的handler有StreamHandler和FileHandler,添加handler的方式如下:
handler = logging.StreamHandler()
logger.addHandler(handler)
设置等级
等级用来控制日志的输出程度,可以设置为DEBUG、INFO、WARNING、ERROR、CRITICAL,如下:
logger.setLevel(logging.DEBUG)
handler.setLevel(logging.DEBUG)
添加日志信息
使用logger.debug('message')、logger.info('message')、logger.warning('message')、logger.error('message')、logger.critical('message')五个方法添加日志信息,如下:
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')
日志信息格式配置
可以通过Formatter来配置日志信息输出的格式,例如:
format_str = '%(asctime)s %(levelname)s %(filename)s %(funcName)s %(lineno)d: %(message)s'
formatter = logging.Formatter(format_str)
handler.setFormatter(formatter)
完整示例
以下是一个完整的示例,展示如何使用logging模块记录日志信息:
import logging
logger = logging.getLogger(__name__)
handler = logging.StreamHandler()
format_str = '%(asctime)s %(levelname)s %(filename)s %(funcName)s %(lineno)d: %(message)s'
formatter = logging.Formatter(format_str)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')
封装成类的操作
为方便使用logging模块,我们可以将其封装成一个类。以下是一个将logging封装成类的示例。代码中以FileHandler为例,将日志信息记录在一个文件中:
import logging
class Logger:
def __init__(self, log_file_path):
self.logger = logging.getLogger(__name__)
self.logger.setLevel(level=logging.DEBUG)
handler = logging.FileHandler(log_file_path)
handler.setLevel(level=logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
self.logger.addHandler(handler)
def debug(self, message):
self.logger.debug(message)
def info(self, message):
self.logger.info(message)
def warning(self, message):
self.logger.warning(message)
def error(self, message):
self.logger.error(message)
def critical(self, message):
self.logger.critical(message)
使用时,可以通过实例化Logger类,并调用其相应的方法记录日志信息:
logger = Logger('app.log')
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')
上面的例子中,Logger类封装了logging模块,使得记录日志信息变得更加简单和方便。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3中的logging记录日志实现过程及封装成类的操作 - Python技术站