Python中的LOGGING模块实现文件日志和控制台日志的输出
发布时间:2024-01-15 00:47:26
在Python中,LOGGING模块是用于记录日志信息的标准库。它提供了灵活的配置选项,可以实现将日志信息输出到文件和控制台。
使用LOGGING模块的第一步是进行初始化和配置。下面是一个配置文件的例子:
import logging
# 创建一个日志器
logger = logging.getLogger("example")
# 设置日志级别
logger.setLevel(logging.DEBUG)
# 创建一个文件处理器
file_handler = logging.FileHandler("log.txt")
# 创建一个控制台处理器
console_handler = logging.StreamHandler()
# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 将格式应用到处理器
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 将处理器添加到日志器
logger.addHandler(file_handler)
logger.addHandler(console_handler)
以上代码首先创建了一个名为"example"的日志器,并设置了日志级别为DEBUG。然后创建了一个文件处理器file_handler,用于将日志输出到文件log.txt中。接着创建了一个控制台处理器console_handler,用于将日志输出到控制台。最后创建了一个日志格式formatter,并将其应用到处理器上。
接下来,我们可以使用logger对象来记录日志。LOGGING模块提供了5个级别的日志记录:DEBUG、INFO、WARNING、ERROR和CRITICAL。下面是一些使用例子:
# 输出debug级别的日志
logger.debug('This is a debug message')
# 输出info级别的日志
logger.info('This is an info message')
# 输出warning级别的日志
logger.warning('This is a warning message')
# 输出error级别的日志
logger.error('This is an error message')
# 输出critical级别的日志
logger.critical('This is a critical message')
这些日志信息会同时输出到文件log.txt和控制台。文件log.txt的内容如下所示:
2021-09-01 12:00:00,000 - example - DEBUG - This is a debug message 2021-09-01 12:00:01,000 - example - INFO - This is an info message 2021-09-01 12:00:02,000 - example - WARNING - This is a warning message 2021-09-01 12:00:03,000 - example - ERROR - This is an error message 2021-09-01 12:00:04,000 - example - CRITICAL - This is a critical message
同时,控制台也会输出相应的日志信息:
2021-09-01 12:00:00,000 - example - DEBUG - This is a debug message 2021-09-01 12:00:01,000 - example - INFO - This is an info message 2021-09-01 12:00:02,000 - example - WARNING - This is a warning message 2021-09-01 12:00:03,000 - example - ERROR - This is an error message 2021-09-01 12:00:04,000 - example - CRITICAL - This is a critical message
通过配置文件,我们可以根据需要选择将日志信息输出到文件、控制台或两者同时输出,并且可以灵活地设置日志级别和日志格式。实际应用中,可以根据需求对日志的配置进行调整,满足实际需求。
