欢迎访问宙启技术站
智能推送

Python日志模块中set_level()函数的作用是什么

发布时间:2024-01-07 10:56:53

Python日志模块中的setLevel()函数用于设置日志的级别,即控制日志的输出范围和详细程度。

日志级别分为以下几个等级(按照从低到高的顺序排列):

- DEBUG:详细信息,用于调试。

- INFO:正常信息,确认程序按预期运行。

- WARNING:警告信息,某些不期望的事情发生或可能发生,但程序仍能继续运行。

- ERROR:错误信息,由于某些问题导致程序出现错误,但仍能继续运行。

- CRITICAL:严重错误信息,导致程序无法继续运行。

通过设置日志级别,可以控制日志的输出情况,只有达到设定级别的日志才会被输出。

下面是一个使用示例,展示了如何使用setLevel()函数设置日志级别:

import logging

# 创建一个Logger对象
logger = logging.getLogger('my_logger')
# 设置日志级别为INFO
logger.setLevel(logging.INFO)

# 创建一个FileHandler,用于写入日志到文件中
file_handler = logging.FileHandler('log.txt')
# 设置日志级别为DEBUG
file_handler.setLevel(logging.DEBUG)

# 创建一个StreamHandler,用于输出日志到控制台
stream_handler = logging.StreamHandler()
# 设置日志级别为WARNING
stream_handler.setLevel(logging.WARNING)

# 创建一个Formatter,用于定义日志输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 将Formatter添加到FileHandler和StreamHandler中
file_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)

# 将FileHandler和StreamHandler添加到Logger中
logger.addHandler(file_handler)
logger.addHandler(stream_handler)

# 输出不同级别的日志信息
logger.debug('This is a debug message.')
logger.info('This is an info message.')
logger.warning('This is a warning message.')
logger.error('This is an error message.')
logger.critical('This is a critical message.')

在上面的例子中,我们创建了一个Logger对象,并设置了其日志级别为INFO。然后创建了一个FileHandler和一个StreamHandler,并分别设置了它们的日志级别为DEBUG和WARNING。最后,将Formatter添加到FileHandler和StreamHandler中,并将它们添加到Logger中。

通过setLevel()函数,我们分别设置了Logger、FileHandler和StreamHandler的日志级别。所以,只有设定级别或更高级别的日志才会被输出。

在例子中,我们输出了不同级别的日志信息,可以发现,只有警告级别以上的日志信息才会在控制台输出,并且所有级别的日志信息都会被写入到log.txt文件中。

使用setLevel()函数,可以根据需要定制日志的输出,从而更好地进行程序的日志管理。