要将logging.info输出到控制台(标准输出),可以使用以下代码:
import logging# 创建一个logger对象
logger = logging.getLogger(__name__)# 创建一个控制台处理器
console_handler = logging.StreamHandler()# 设置控制台处理器的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)# 将控制台处理器添加到logger对象中
logger.addHandler(console_handler)# 输出日志信息
logger.info('Hello, world!')
在上面的示例中,我们首先创建一个名为__name__
的logger对象。然后,我们创建一个StreamHandler,并将其格式化。最后,我们将该StreamHandler添加到logger对象中。
现在,每当你在代码中使用logger.info方法时,日志信息将被输出到控制台。在这种情况下,
输出格式为:时间戳 - logger名称 - 日志级别 - 日志信息。
请注意,logger.info只输出信息级别为INFO或更高级别的日志信息。如果你要输出所有级别的日志信息,请使用logger.setLevel(logging.DEBUG)来设置日志级别为DEBUG。
如果日志还没有正常输出
- 方法一
添加
logger.setLevel(logging.DEBUG)
- 方法二
在Linux中,标准输出通常是控制台的默认输出。如果你在Windows上运行此代码,则需要将LogRecord输出到标准输出流(sys.stdout)。这可以通过在创建StreamHandler对象时显式设置stream=sys.stdout来完成,如下所示:
console = logging.StreamHandler(stream=sys.stdout)
- 方法三
logging.debug = print
logging.info = print
logging.warning = print
logging.error = print