app.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import time
  2. import platform
  3. import os
  4. from flask import Flask
  5. from flask_cors import CORS
  6. from configs.nacos_config import nacos_service_single
  7. from interfaces.resume import resume
  8. from interfaces.rocketmq import rocket
  9. import logging
  10. from logging.handlers import TimedRotatingFileHandler
  11. app = Flask(__name__)
  12. app.config['JSON_AS_ASCII'] = False
  13. CORS(app, resources=r'/*')
  14. nacos_service_single.start()
  15. # 注册蓝图
  16. app.register_blueprint(resume, url_prefix='/resume')
  17. app.register_blueprint(rocket, url_prefix='/rocket')
  18. # 设置日志目录-----设置为当前脚本文件所在的目录下的 logs 目录。
  19. log_directory = os.path.join(os.path.dirname(__file__), 'logs')
  20. os.makedirs(log_directory, exist_ok=True)
  21. # 配置日志
  22. formatter = logging.Formatter("[%(asctime)s][%(filename)s:%(lineno)d][%(levelname)s][%(thread)d] - %(message)s")
  23. handler = TimedRotatingFileHandler(os.path.join(log_directory, "flask.log"), when="midnight", interval=1, backupCount=15, encoding="UTF-8")
  24. handler.setFormatter(formatter)
  25. app.logger.addHandler(handler)
  26. app.logger.setLevel(logging.DEBUG)
  27. # 立即轮转日志文件
  28. try:
  29. handler.doRollover()
  30. except Exception as e:
  31. app.logger.error(f"Failed to rollover log file: {e}")
  32. # 启动应用
  33. def run_app():
  34. time.sleep(5)
  35. plat = platform.system().lower()
  36. if plat == 'windows':
  37. app.run(host='0.0.0.0', port=3333, debug=True, use_reloader=True)
  38. elif plat == 'linux':
  39. app.run(host='0.0.0.0', port=3333, debug=False, processes=1)
  40. if __name__ == '__main__':
  41. run_app()