Похоже, что вы задаете два вопроса.
Чтобы предотвратить выход вашего процесса из-за ошибок, вам нужно перехватить все exception
s, которые были вызваны с помощью try...except...finally
.
Вы также хотите перенаправить весь вывод в журнал.К счастью, Python предоставляет для вашего удобства комплексный модуль logging
.
Например, для вашего восхищения и восхищения:
#!/usr/bin/env python
import logging
logging.basicConfig(filename='warning.log', level=logging.WARNING)
try:
1/0
except ZeroDivisionError, e:
logging.warning('The following error occurred, yet I shall carry on regardless: %s', e)
Это любезно испускает:
% cat warning.log
WARNING:root:The following error occurred, yet I shall carry on regardless: integer division or modulo by zero