69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
|
|
#!/usr/bin/env python
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""
|
|||
|
|
生产环境启动文件
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
import os
|
|||
|
|
import sys
|
|||
|
|
import logging
|
|||
|
|
from logging.handlers import RotatingFileHandler
|
|||
|
|
|
|||
|
|
# 添加项目根目录到Python路径
|
|||
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|||
|
|
|
|||
|
|
# 配置日志
|
|||
|
|
log_formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
|
|||
|
|
log_handler = RotatingFileHandler('logs/production.log', maxBytes=10240, backupCount=10)
|
|||
|
|
log_handler.setFormatter(log_formatter)
|
|||
|
|
log_handler.setLevel(logging.INFO)
|
|||
|
|
|
|||
|
|
app_logger = logging.getLogger('werkzeug')
|
|||
|
|
app_logger.setLevel(logging.INFO)
|
|||
|
|
app_logger.addHandler(log_handler)
|
|||
|
|
|
|||
|
|
# 尝试加载.env文件
|
|||
|
|
try:
|
|||
|
|
from dotenv import load_dotenv
|
|||
|
|
if load_dotenv():
|
|||
|
|
print("成功加载.env文件")
|
|||
|
|
else:
|
|||
|
|
print("未找到或无法加载.env文件")
|
|||
|
|
except ImportError:
|
|||
|
|
print("python-dotenv未安装,跳过.env文件加载")
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
from app import create_app
|
|||
|
|
|
|||
|
|
# 创建应用实例(生产环境配置)
|
|||
|
|
os.environ['FLASK_ENV'] = 'production'
|
|||
|
|
os.environ['FLASK_CONFIG'] = 'production'
|
|||
|
|
app = create_app('production')
|
|||
|
|
|
|||
|
|
# 配置应用日志
|
|||
|
|
app.logger.addHandler(log_handler)
|
|||
|
|
app.logger.setLevel(logging.INFO)
|
|||
|
|
|
|||
|
|
if __name__ == '__main__':
|
|||
|
|
# 获取配置
|
|||
|
|
config_name = os.environ.get('FLASK_CONFIG') or 'production'
|
|||
|
|
print(f"Configuration name: {config_name}")
|
|||
|
|
|
|||
|
|
host = os.environ.get('HOST', '0.0.0.0')
|
|||
|
|
port = int(os.environ.get('PORT', 5000))
|
|||
|
|
debug = app.config.get('DEBUG', False)
|
|||
|
|
|
|||
|
|
print(f"Starting server on {host}:{port}")
|
|||
|
|
print(f"Debug mode: {debug}")
|
|||
|
|
|
|||
|
|
# 运行应用
|
|||
|
|
app.run(
|
|||
|
|
host=host,
|
|||
|
|
port=port,
|
|||
|
|
debug=debug
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"启动应用时发生错误: {e}")
|
|||
|
|
logging.exception("启动应用时发生错误")
|
|||
|
|
sys.exit(1)
|