그래서 이걸 가지고 있습니다.다중 처리 오류 받기
from multiprocessing import Process
def run():
4/0
sys.exit()
def go(self):
p = Process(target=run, args=())
p.start()
p.join()
어떻게 프로세스에서 오류를 가져 와서 파일에 저장할 수 있습니까?
그래서 이걸 가지고 있습니다.다중 처리 오류 받기
from multiprocessing import Process
def run():
4/0
sys.exit()
def go(self):
p = Process(target=run, args=())
p.start()
p.join()
어떻게 프로세스에서 오류를 가져 와서 파일에 저장할 수 있습니까?
랩 시도/제외 담요가 잡을에서 함수 예외. 파이썬 로깅 모듈을 사용하여 스택 트레이스를 기록하고, 상황에 따라 locals()를 기록 할 수도 있습니다.
로깅 모듈을 건너 뛰고 'print'를 사용하여 예외 처리 메시지를 콘솔에 인쇄 할 수도 있습니다.
로그 모듈을 사용할 수 있습니다. import logging
각 프로세스가 오류/로그를 로그 파일에 직접 기록하도록 할 수 있습니다.
logger = logging.getLogger('spam_application')
logger.warning("Something bad happened")
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()
흠, 위의 예를 어떻게 구현할 수 있습니까? –
@AA - 덧글을 편집했습니다. 당신은 실행 메소드를 잡아서 파이썬 코드를 실행하는 동안 오류를 포착하려고 시도 할 수 있습니다. – Harman
실제로 run() 함수에 액세스 할 수 없으므로 편집 할 수 없습니다. –