首页 > 解决方案 > 用 logging.info() 替换 print('', end='\r') 语句会引发错误

问题描述

有没有办法将带有 end='\r' 标志的格式化字符串传递给记录器?以前我曾经有一个 print() 语句,我用 logging.info() 替换了它,但它现在停止工作

import logging    
logging.basicConfig(level=logging.DEBUG)
logging.info("Running operation ID: {0} on {1}.    fl-queuetool -z {1} log {0}".format(str(oper_ID), zone))
            while True:
                stat = getOperationStatus(zone, oper_ID)
                logging.info(stat, end='\r')

终端输出:

INFO:root:Running operation ID: 6057 on star.    fl-queuetool -z star log 6057
DEBUG:root:_log() got an unexpected keyword argument 'end'

有没有办法修复它?在文档中,它读取函数接受 *args ...

logging.info(msg, *args, **kwargs)¶

    Logs a message with level INFO on the root logger. The arguments are interpreted as for debug().

标签: pythonloggingprintingflags

解决方案


如果您使用的是 Python >= 3.2,则可以terminator在 a 上设置属性StreamHandler以确定终止符是什么。当然,它默认为\n。请参阅文档


推荐阅读