Форум сайта python.su
0
Здравствуйте. У меня в модуле есть, например, такой код:
…
def main_loop(): try: test() a = 1 / 0 except BaseException as error: file = open('test_log_file.txt', 'w') file.write(str(error)) file.close()
File "C:\Users\Admin\Desktop\test_module.py", line 9, in <module> main_loop() File "C:\Users\Admin\Desktop\test_module.py", line 7, in main_loop a = 1 / 0 ZeroDivisionError: division by zero
Офлайн
если Unix-like то перенаправить поток ошибок
python myscript.py 2>mylog.txt
Отредактировано vic57 (Окт. 2, 2016 17:49:13)
Офлайн
0
А другого способа нет? Я просто этот скрипт запускаю из игрового движка. И не хочется запускать игру с помощью bat-ника (game.exe > test_log_file.txt). И плюс к тому, путь к файлу test_log_file.txt можно изменять в файле настроек. Он может быть разным время от времени.
Офлайн
221
модуль traceback этим занимается.
Если просто, то вот так:
import traceback try: 1 / 0 except Exception: with open('errors.log', 'a') as f: f.write('{}\n'.format(traceback.format_exc())
Офлайн
0
JOHN_16, спасибо. Это то что мне нужно было.
Офлайн