StreamHandler()在Python中的作用及使用方法
发布时间:2023-12-16 17:10:27
StreamHandler()是Python日志模块logging中的一个处理器类,用于将日志消息发送到流对象(文件、终端等)。它将日志消息输出到标准错误流(sys.stderr)或标准输出流(sys.stdout)。
StreamHandler()的使用方法如下:
1. 创建一个StreamHandler对象,可以设置参数stream来指定输出流,默认为sys.stderr。
2. 可以设置formatter属性为一个Formatter对象,以定义日志消息的格式,默认为logging的默认格式。
3. 将StreamHandler对象添加到logger对象中,以处理相应的日志消息。
使用例子如下:
import logging
# 创建logger对象
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建StreamHandler对象,将日志消息发送到sys.stdout
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
# 创建Formatter对象,定义日志消息的格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# 将StreamHandler添加到logger对象中
logger.addHandler(handler)
# 输出日志消息
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
上述例子中,首先创建了一个logger对象,并设置日志级别为DEBUG。然后创建了一个StreamHandler对象,将日志消息发送到sys.stdout,并设置日志级别为DEBUG。接下来,创建了一个Formatter对象,定义了日志消息的格式。最后,将StreamHandler对象添加到logger对象中,以处理相应的日志消息。
通过输出日志消息,可以看到不同级别的日志消息被输出到终端,并按照定义的格式进行了格式化。
StreamHandler()的作用是将日志消息发送到流对象,方便将日志消息输出到文件、终端等。它是logging模块中最常用的处理器之一,适用于大多数日志记录场景。
