私はパイソン初心者です。私の python スクリプトは、基本的な python ロギング モジュールを使用して出力をファイル (example.log など) に記録します。ただし、私の python スクリプトは、私が制御できないいくつかのサードパーティ 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.
このサイトで同様の質問を提案する投稿があったことは知っていますが、このシナリオで機能するこの問題の回避策/解決策はありません。