app.py 1.4 KB

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