format_exc_test.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import logging
  2. import traceback
  3. import sys
  4. # 配置你的 logger
  5. logging.basicConfig(level=logging.ERROR,
  6. format='%(asctime)s - %(levelname)s - %(message)s',
  7. filename='error.log',
  8. filemode='a')
  9. logger = logging.getLogger(__name__)
  10. def func_that_might_fail():
  11. # 模拟一个会抛出错误的操作
  12. result = 1 / 0
  13. return result
  14. try:
  15. func_that_might_fail()
  16. except Exception as e:
  17. # 打印异常信息到控制台(可选)
  18. # traceback.print_exc()
  19. # 获取完整的异常 traceback 信息作为字符串
  20. # traceback.format_exc() 默认情况下会获取当前活跃的异常信息
  21. # 如果在 except 块外部调用,需要传入 exc_info
  22. exc_traceback = traceback.format_exc()
  23. # 或者使用 sys.exc_info() 获取元组,然后传递给 format_exception
  24. # exc_type, exc_value, exc_traceback_obj = sys.exc_info()
  25. # exc_traceback = "".join(traceback.format_exception(exc_type, exc_value, exc_traceback_obj))
  26. logger.error("An error occurred: %s\n%s", e, exc_traceback)
  27. print("程序继续执行...")