我是python初学者。我的 python 脚本使用基本的 python 日志记录模块将输出记录到一个文件(比如 example.log)。但是,我的 python 脚本还进行了一些我无法控制的第 3 方 API 调用(例如,parse_the_file)。我想将 API 生成的输出(通常在控制台上)捕获到我的 example.log 中。以下示例代码部分工作,但问题是一旦我开始将 API 的输出记录到我的日志文件中,内容就会被覆盖。
#!/usr/bin/env python
import logging
import sys
import os
from common_lib import * # import additional modules
logging.basicConfig(filename='example.log', filemode='w', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a log message.') # message goes to log file.
sys.stdout = open('example.log','a')
metadata_func=parse_the_file('/opt/metadata.txt') # output goes to log file but OVERWRITES the content
sys.stdout = sys.__stdout__
logging.debug('This is a second log message.') # message goes to log file.
我知道在这个网站上有过类似问题的帖子,但我没有在这种情况下有效的解决方法/解决方案。