def get_logger(name, filename=None, filedir=None, handler=None, formatter=None, level=None): filename = filename or '%s.log' % name filedir = filedir or config.get('general', 'LOG_DIR') log_path = os.path.join(filedir, filename) handler = handler or RotatingFileHandler(filename=log_path, maxBytes=100 * 1024000, backupCount=10) formatter = formatter or logging.Formatter(config.get('general', 'LOG_FORMAT')) level = level or config.get('general', 'LOG_ROOT_LEVEL') handler = { 'handler': handler, 'formatter': formatter, 'level': level } logger = loggers.get(name) if logger is None: logger = logging.getLogger(name) logger.setLevel(config.get('general', 'LOG_ROOT_LEVEL')) h = handler['handler'] h.setFormatter(handler['formatter']) h.setLevel(handler['level']) logger.addHandler(h) loggers[name] = logger return logger
def init_logger(app): log_format = config.get('app', 'LOG_FORMAT') log_root_level = config.get('app', 'LOG_ROOT_LEVEL') log_file_path = config.get('app', 'LOG_FILE_PATH') log_file_log_level = config.get('app', 'LOG_FILE_LOG_LEVEL') init_flask_logger(app, log_format, log_root_level, log_file_path, log_file_log_level) if config.getboolean('app', 'DEBUG'): app.logger.addHandler(logging.StreamHandler(sys.stderr))
def init_app_config(app, config): class CFG(object): pass cfg = CFG() for name in config.options('app'): setattr(cfg, name.upper(), config.get('app', name)) cfg.PORT = config.getint('app', 'PORT') cfg.HOST = config.get('app', 'HOST') cfg.SQLALCHEMY_DATABASE_URI = config.get('db', 'SQLALCHEMY_DATABASE_URI') cfg.MAX_CONTENT_LENGTH = config.getint('app', 'MAX_CONTENT_LENGTH') cfg.DEBUG = config.getboolean('app', 'DEBUG') server_name = os.getenv('ORANGEAPP_SERVER_URL', '') if server_name: cfg.SERVER_NAME = server_name config.set('app', 'SERVER_NAME', server_name) app.config.from_object(cfg)
@general.route('/test/secret', methods=['GET']) @login_api_key @login_required() def api_secret_fortestonly(): return jsonify_status_string(message="Success", status='success') @general.route('/', methods=['GET']) def index(): return redirect('index.html') LOG_FILE_PATH = config.getpath('app', 'LOG_FILE_PATH') STATIC_PATH = config.getpath('app', 'STATIC_PATH') API_URL_PREFIX = config.get('app', 'API_URL_PREFIX') BLUEPRINTS = [ (general, ''), session_rest ] def register_blueprints(app, blueprints): for blueprint in blueprints: prefix = API_URL_PREFIX if isinstance(blueprint, tuple): blueprint, prefix = blueprint app.register_blueprint(blueprint, url_prefix=prefix)
#!/usr/bin/env python from migrate.versioning.shell import main from orange.myproject.conf import config if __name__ == '__main__': SQLALCHEMY_DATABASE_URI = config.get('db', 'SQLALCHEMY_DATABASE_URI') SQLALCHEMY_MIGRATE_REPO = config.getpath('db', 'SQLALCHEMY_MIGRATE_REPO') main(url=SQLALCHEMY_DATABASE_URI, repository=SQLALCHEMY_MIGRATE_REPO, debug=False)
from flask import g from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from orange.myproject.conf import config engine = None DBSession = None DB_URL = config.get("db", "SQLALCHEMY_DATABASE_URI") DB_URL_TEST = "sqlite:///:memory:" def get_engine(): if engine is None: switch_engine() return engine def switch_engine(new_engine=None, test=False): global engine global DBSession extra_args = {} is_sqlite = DB_URL.startswith("sqlite") is_debug = config.getboolean("db", "debug") if not is_sqlite: extra_args = {"pool_size": 100, "max_overflow": 0} if new_engine is None: if test: new_engine = create_engine(DB_URL_TEST, echo=is_debug)