sys.stdout 将控制台print 内容 保存到日志
未解决
方法
1 subprocess.run()
2 class LoggerWriter
3 StremHandler
https://blog.51cto.com/save/7407591
https://blog.51cto.com/save/8460544
https://blog.51cto.com/save/11198590
https://blog.51cto.com/save/7462422
在Python中,sys.stdout
是标准输出流,通常用于在控制台打印信息。如果你想将这些输出保存到日志文件中,你可以重定向 sys.stdout
到一个文件对象。这里有一个简单的例子,演示如何将 print
函数的输出重定向到一个日志文件:
import sys
# 打开一个文件用于写入日志
log_file = open('app.log', 'w')
# 将标准输出重定向到这个文件
sys.stdout = log_file
# 现在所有print的内容都会写入到app.log文件中
print("Hello, this will be in the log file.")
# 别忘了关闭文件
log_file.close()
如果你想要更高级的日志记录功能,比如设置日志级别、格式化日志消息等,你可以使用Python的 logging
模块。以下是一个使用 logging
模块的例子:
import logging
# 配置日志记录器
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# 使用logging模块打印信息
logging.info("This is an info message.")
logging.error("This is an error message.")
在这个例子中,所有的日志消息都会按照指定的格式保存到 app.log
文件中,并且你可以根据需要设置不同的日志级别。