所以我有這個;獲取多處理錯誤
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()
如何從流程中獲取錯誤並將它們存儲在文件中?
裹在嘗試/除,毯子捕捉功能例外。使用python日誌記錄模塊記錄堆棧跟蹤,也可以使用locals()以及上下文。
您也可以跳過日誌記錄模塊,並使用'print'將異常處理消息打印到控制檯。
您可以使用日誌模塊: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()
嗯,我怎麼能實現這個到上面的例子? –
@AA - 編輯評論。您可以嘗試使用run方法捕獲執行python代碼時發生的任何錯誤。 – Harman
實際上,我沒有權限訪問run()函數,我無法編輯它 –