24c5da72f6
Conflicts: app/app.py app/james.py
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import logging
|
|
from logging.handlers import TimedRotatingFileHandler
|
|
from flask import Flask
|
|
from flask.ext.bootstrap import Bootstrap, StaticCDN
|
|
from flask.ext.sqlalchemy import SQLAlchemy
|
|
|
|
|
|
app = Flask(__name__)
|
|
app.config.from_object('config.Configuration')
|
|
Bootstrap(app)
|
|
|
|
# use our own bootstrap theme
|
|
app.extensions['bootstrap']['cdns']['bootstrap'] = StaticCDN()
|
|
|
|
db = SQLAlchemy(app)
|
|
|
|
class PrefixFix(object):
|
|
|
|
def __init__(self, app, script_name):
|
|
self.app = app
|
|
self.script_name = script_name
|
|
|
|
def __call__(self, environ, start_response):
|
|
path = environ.get('SCRIPT_NAME', '') + environ.get('PATH_INFO', '')
|
|
environ['SCRIPT_NAME'] = self.script_name
|
|
environ['PATH_INFO'] = path[len(self.script_name):]
|
|
return self.app(environ, start_response)
|
|
|
|
|
|
if not app.debug:
|
|
app.wsgi_app = PrefixFix(app.wsgi_app, '/james')
|
|
timedFileHandler = TimedRotatingFileHandler(app.config['LOGFILE'], when='midnight', backupCount=100)
|
|
timedFileHandler.setLevel(logging.INFO)
|
|
logger = logging.getLogger('werkzeug')
|
|
logger.addHandler(timedFileHandler)
|
|
app.logger.addHandler(timedFileHandler)
|