python中logging模块简单和高级使用的方法是什么
更新时间:2023-10-22前言
logging模块是Python内置的模块,用于实现日志功能。日志记录是应用程序中非常重要的一部分,可以用于追踪程序运行的状态、调试和错误处理。logging模块提供了灵活的配置选项,可以按照不同的需求输出日志到不同的目的地,并可以根据不同的日志级别过滤日志信息,方便开发和排查问题。
简单使用
在使用logging模块之前,首先需要导入模块。
import logging
然后可以设置日志输出的级别,常用的级别有DEBUG、INFO、WARNING、ERROR和CRITICAL。通过调用"logging.basicConfig()"函数来配置日志输出的格式和级别。
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
以上代码配置了日志级别为DEBUG,并使用格式化字符串定义日志格式,其中"%(asctime)s"用于显示时间,"%(levelname)s"用于显示日志级别,"%(message)s"用于显示日志消息。
使用logging模块进行日志记录时,可以通过调用不同级别的日志方法来输出不同级别的日志信息。
logging.debug('This is a debug message') logging.info('This is an info message') logging.warning('This is a warning message') logging.error('This is an error message') logging.critical('This is a critical message')
高级使用
除了简单的使用方式,logging模块还提供了许多高级功能,可以更加灵活地满足各种需求。
控制日志级别
在实际应用中,我们可能只关注特定级别以上的日志信息,可以通过下面的方法进行配置:
logging.getLogger().setLevel(logging.INFO)
以上代码将全局日志级别设置为INFO,表示只输出INFO级别以上的日志信息。
输出到文件
除了输出到控制台,logging模块还支持将日志信息输出到文件,可以使用"logging.FileHandler"类来实现。
file_handler = logging.FileHandler('log.txt') file_handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') file_handler.setFormatter(formatter) logging.getLogger().addHandler(file_handler)
以上代码创建了一个文件记录器,并将日志级别设置为DEBUG,使用自定义的格式化字符串设置日志格式,然后将文件记录器添加到根记录器中。
添加过滤器
有时候我们只对特定的日志信息感兴趣,可以添加过滤器来实现。
class MyFilter(logging.Filter): def filter(self, record): return "important" in record.msg logging.getLogger().addFilter(MyFilter())
以上代码定义了一个自定义的过滤器"MyFilter",该过滤器仅仅将含有"important"关键字的日志信息记录下来。
总结
logging模块是Python内置的用于实现日志功能的模块。通过简单的配置可以实现基本的日志记录,包括设置日志级别和日志格式。在实际应用中,我们可以根据不同的需求进行高级配置,例如控制日志级别、输出到文件、添加过滤器等。logging模块提供了丰富的功能,可以帮助我们更好地追踪和排查问题,提高开发效率。