だから私はこれを持っています。
from multiprocessing import Process
def run():
4/0
sys.exit()
def go(self):
p = Process(target=run, args=())
p.start()
p.join()
プロセスからエラーを取得し、ファイルに保存するにはどうすればよいですか?
log module:import logging
を使用して、各プロセスにエラー/ログを直接ログ ファイルに記録させることができます。
logger = logging.getLogger('spam_application')
logger.warning("Something bad happened")
コードで次の操作を行います。注 - これは、他のロガーも使用できるローテーション ロガーです。[http://docs.python.org/2/library/logging.html]
from multiprocessing import Process
import logging
from logging.handlers import RotatingFileHandler
r_logger = logging.getLogger('parsexmlfiles')
def set_logger()
FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
parser_logger = logging.getLogger('A_A_logfile')
if isdaemon is True:
# Log into a Log File.
rotatingFH = RotatingFileHandler("/tmp/A_Alogfile.log", mode='a',
maxBytes=7340032, backupCount=4,
encoding=None, delay=False)
rotatingFH.setFormatter(logging.Formatter(
fmt="%(asctime)s : %(levelname)s : %(message)s",
datefmt=None))
parser_logger.addHandler(rotatingFH)
parser_logger.setLevel(logging.DEBUG)
def run():
4/0
r_logger.info("Info Message")
sys.exit()
def go(self):
set_logger()
p = Process(target=run, args=())
p.start()
p.join()
関数を try/except でラップし、例外をブランケット キャッチします。Python ロギング モジュールを使用してスタック トレースをログに記録し、おそらく locals() を使用してコンテキストを記録します。
ロギング モジュールをスキップして、'print' を使用して例外処理メッセージをコンソールに出力することもできます。