我有一个使用“Print”打印到stdout的Python脚本。最近,我通过Python Logger添加了日志记录,并希望如果启用了日志记录,则这些print语句会转到记录器中。我不想修改或删除这些print语句。
我可以通过执行'log.info("some info msg")'来记录日志。我想能够像这样做:
如果启用了日志记录,"test" 应该被记录,就像我执行 log.info("test") 一样。如果未启用日志记录,则 "test" 应该只打印到屏幕上。
这种情况是否可能?我知道可以以类似的方式将 stdout 重定向到文件中(参见:将打印重定向到日志文件)。
我可以通过执行'log.info("some info msg")'来记录日志。我想能够像这样做:
if logging_enabled:
sys.stdout=log.info
print("test")
如果启用了日志记录,"test" 应该被记录,就像我执行 log.info("test") 一样。如果未启用日志记录,则 "test" 应该只打印到屏幕上。
这种情况是否可能?我知道可以以类似的方式将 stdout 重定向到文件中(参见:将打印重定向到日志文件)。
print
包含任何不适用于log.info
的参数,例如:print("Hello", file = sys.stderr)
,则此设置将失败。 - hafiz031