Python 将堆栈跟踪打印到文件时出现异常
我试图在脚本中加入一个简单的日志。此日志应该告诉我错误在哪里,以及修复脚本所需的尽可能多的信息 我已经将print to filePython 将堆栈跟踪打印到文件时出现异常,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
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())
可能的副本我建议你看一下。这是一个涵盖面很广的话题;应该没有必要在这里重新发明轮子。