我正在尝试将简单的日志放入我的脚本中。此日志应告诉我错误的位置以及修复脚本所需的尽可能多的信息。
我已将print str(e)
添加到每个文件中,但它提供的信息很少,可以知道出了什么问题。
我怎么能详细说明?例如,我可以在控制台中看到整个未捕获的异常文本?
try:
#code
except Exception as e:
print_to_file(log.txt,str(e))
答案 0 :(得分:16)
试试这个,
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())
如果您想要更好的解决方案,请使用Logger来管理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())