Python 将堆栈跟踪打印到文件时出现异常

Python 将堆栈跟踪打印到文件时出现异常,python,exception,try-catch,try-except,Python,Exception,Try Catch,Try Except,我试图在脚本中加入一个简单的日志。此日志应该告诉我错误在哪里,以及修复脚本所需的尽可能多的信息 我已经将print to filestr(e)放入每个文件中,但它提供了很少的信息来了解哪里出了问题 我怎样才能把它弄清楚?例如,我可以在控制台中看到的整个未捕获异常文本 try: #code except Exception as e: print_to_file(log.txt,str(e)) 试试这个 import traceback try: 1/0 except E

我试图在脚本中加入一个简单的日志。此日志应该告诉我错误在哪里,以及修复脚本所需的尽可能多的信息

我已经将print to file
str(e)
放入每个文件中,但它提供了很少的信息来了解哪里出了问题

我怎样才能把它弄清楚?例如,我可以在控制台中看到的整个未捕获异常文本

try:
    #code
except Exception as e:
   print_to_file(log.txt,str(e))
试试这个

import traceback
try:
    1/0 
except Exception as e:
    with open('log.txt', 'a') as f:
        f.write(str(e))
        f.write(traceback.format_exc())
如果您想要一个更好的解决方案,应该使用记录器来管理syou的时间戳、文件大小和旋转(执行记录器处理程序)

这是一个带有记录器、时间戳和旋转的示例

import logging
from logging.handlers import RotatingFileHandler
import traceback

logger = logging.getLogger("Rotating Log")
logger.setLevel(logging.ERROR)
handler = RotatingFileHandler("log.txt", maxBytes=10000, backupCount=5)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
try:
    1/0 
except Exception as e:
    logger.error(str(e))
    logger.error(traceback.format_exc())

可能的副本我建议你看一下。这是一个涵盖面很广的话题;应该没有必要在这里重新发明轮子。