我想在 Python 3.6 中仅使用一行日志来打印列表。目前我的代码看起来像这样。
logger = logging.getLogger()
logger.setLevel(log_level)
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(log_level)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
logger.addHandler(ch)
# some codes in-between
num_list = [1, 2, 3, 4, 5]
logger.info("Numbers in num_list are: ")
for item in num_list:
logger.info(item)
我想要得到的是
2018-07-23 17:29:30,200 - root - INFO - Numbers in num_list are: 1 2 3 4 5
但是,我会得到
2018-07-23 17:29:30,200 - root - INFO - Numbers in num_list are:
2018-07-23 17:29:30,200 - root - INFO - 1
2018-07-23 17:29:30,200 - root - INFO - 2
2018-07-23 17:29:30,200 - root - INFO - 3
2018-07-23 17:29:30,200 - root - INFO - 4
2018-07-23 17:29:30,200 - root - INFO - 5
我知道如果我使用 print
输出,我可以使用 print(item, end=" ")
明确更改输出后的内容。但是,日志记录似乎不接受 end
作为输入参数。
有谁知道我如何获得所需的输出?非常感谢!
原文由 Jekyll SONG 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在使用 for 循环遍历所有列表并一次一次尝试记录它:
logger.info("Numbers in num_list are: {}".format(' '.join(map(str, num_list))))
一次发布它们请参阅: https ://docs.python.org/3/library/stdtypes.html?highlight=str#str.join