繁体   English   中英

将消息从 python2.7 记录到 python3.9,反之亦然

[英]logging message from python2.7 to python3.9 vice versa

我是 python 的新手,并试图将应用程序从python2.7移植到python 3.9并在将消息记录到文件时遇到问题

我已经设置了日志记录配置
logging.basicConfig(filename='example.log', encoding='utf-8', level=logging.DEBUG)

尝试将日志写入文件时,出现错误。

logging.info ( "CRL_TO_PEM_CMD =",CRL_TO_PEM_CMD )在 2.7 和 3.9 中都给出了以下错误

类型错误:字符串格式化期间并非所有 arguments 都转换

logging.info ( f"CRL_TO_PEM_CMD ={CRL_TO_PEM_CMD}" )在 3.9 中工作正常,在 2.7 中给出错误

如何编写适用于 2.7 和 3.9 的语句?

Python2 和 Python3 上的默认日志记录样式是% -formatting aka printf-formatting msg中使用%样式的占位符, logging模块将根据需要插入其他 arguments 。

logging.info("CRL_TO_PEM_CMD = %s", CRL_TO_PEM_CMD )

msg是消息格式字符串, args是使用字符串格式化运算符合并到 msg 中的 arguments。

如果CRL_TO_PEM_CMD是一个字符串,您可以使用:

logging.info ("CRL_TO_PEM_CMD =" + CRL_TO_PEM_CMD)

如果没有,您需要先将其转换为str

logging.info ("CRL_TO_PEM_CMD =" + str(CRL_TO_PEM_CMD))

顺便说一句,您可以使用同时支持 Python 2 和 3 的字符串格式。它可用于将每种类型的数据与字符串连接起来。

例如

logging.info ("CRL_TO_PEM_CMD ={}".format(CRL_TO_PEM_CMD))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM