Print exception with stack trace to file
我想在我的脚本中添加一个简单的日志。这个日志应该告诉我错误在哪里,以及修复脚本所需的尽可能多的信息。
我把打印到文件
我怎样才能把它详细化呢?例如,我可以在控制台中看到整个未捕获的异常文本?
1 2 3 4 | try: #code except Exception as e: print_to_file(log.txt,str(e)) |
试试这个,
1 2 3 4 5 6 7 | 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管理时间戳、文件大小和旋转的记录器(执行记录器处理程序)。
这是一个带有记录器、时间戳和旋转的示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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()) |