Python ロギング モジュールを使い始めたばかりで、何か理解できません。
次のように動作するスクリプトを書いています。
最初の部分(単一プロセス): 計算するデータを取得します (方法は重要ではありません)。ここでは、次の方法でロガーを作成します。
import logging
logging.basicConfig(format='%(asctime)-6s: %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger('Pipeline')
logger.setLevel(logging.INFO)
logger.warning('Pipeline started')
つまり、画面にログインします。
第 2 部(マルチプロセッシング): 以前に見つかったデータを分析するために、いくつかのプロセスを作成します (データ分析は実際には時間と CPU を消費します)。
ここで、各プロセスが画面にログを記録せずに異なるファイルにのみログを記録するようにしたいと思います。
私が書いたものは次のとおりです。
fh = logging.FileHandler('/tmp/'+multiprocessing.current_process().name+'_worker.log')
fmt = logging.Formatter(%(asctime)-6s: %(name)s - %(levelname)s - %(message)s)
fh.setFormatter(fmt)
local_logger = logging.getLogger(multiprocessing.current_process().name+'_worker')
local_logger.addHandler(fh)
local_logger.warning(multiprocessing.current_process().name + ' (worker) Process started')
私が得たのは、各プロセスが異なるファイルにログを記録するが、画面にもログを記録するということです!
どうすればこれを修正できますか?