示例#1
0
def setup_logging():
    config = {
        "version": 1,
        "disable_existing_loggers": False,
        "filters": {
            "gunicorn_filter": {
                "()": GunicornFilter
            }
        },
        "formatters": {
            "standard": {
                "format": settings.get("LOG_FORMAT"),
                "datefmt": settings.get("LOG_DATE_FORMAT")
            }
        },
        "handlers": {
            "console": {
                "formatter": "standard",
                "class": "logging.StreamHandler",
                "filters": ["gunicorn_filter"],
            }
        },
        "loggers": {
            "": {
                "handlers": ["console"],
                "level": settings.get("LOG_LEVEL")
            }
        }
    }

    logging.config.dictConfig(config)
def setup_logging():
    config = {
        "version": 1,
        "disable_existing_loggers": False,
        "filters": {
            "gunicorn_filter": {
                "()": GunicornFilter
            }
        },
        "formatters": {
            "standard": {
                "format": settings.get("LOG_FORMAT"),
                "datefmt": settings.get("LOG_DATE_FORMAT")
            }
        },
        "handlers": {
            "console": {
                "formatter": "standard",
                "class": "logging.StreamHandler",
                "filters": ["gunicorn_filter"],
            }
        },
        "loggers": {
            "": {
                "handlers": settings.get("LOG_HANDLERS").split(','),
                "level": settings.get("LOG_LEVEL")
            }
        }
    }

    logging.config.dictConfig(config)
示例#3
0
def _post_fork(server=None, w=None):
    # Setup database connection
    # Connect to mongo_db after forking gunicorn
    MongoStorage(db_name=settings.get('db_name'),
                 mongo_uri=settings.get('mongo_uri'))

    _config_logging()
示例#4
0
def test_config_override():
    configure()

    assert settings.get("APP_NAME") == "app"

    configure(app_name="new_name")

    assert settings.get("APP_NAME") == "new_name"
示例#5
0
文件: cors.py 项目: brabidou/GetSqurd
 def process_response(self, req, resp, resource):
     resp.set_header("Access-Control-Allow-Origin",
                     settings.get("ACCESS_CONTROL_ALLOW_ORIGIN"))
     resp.set_header("Access-Control-Allow-Methods",
                     settings.get("ACCESS_CONTROL_ALLOW_METHODS"))
     resp.set_header("Access-Control-Allow-Credentials",
                     settings.get("ACCESS_CONTROL_ALLOW_CREDENTIALS"))
     resp.set_header("Access-Control-Allow-Headers",
                     settings.get("ACCESS_CONTROL_ALLOW_HEADERS"))
示例#6
0
def add_settings_to_kwargs(kwargs: Dict[str, str]) -> Dict[str, str]:
    json_datetime_mode = settings.get("JSON_DATETIME_MODE")
    json_number_mode = settings.get("JSON_NUMBER_MODE")
    json_uuid_mode = settings.get("JSON_UUID_MODE")

    datetime_mode = (getattr(rapidjson, json_datetime_mode) if hasattr(
        rapidjson, json_datetime_mode or "") else None)
    number_mode = (getattr(rapidjson, json_number_mode) if hasattr(
        rapidjson, json_number_mode or "") else None)
    uuid_mode = (getattr(rapidjson, json_uuid_mode) if hasattr(
        rapidjson, json_uuid_mode or "") else None)

    if "datetime_mode" not in kwargs:
        kwargs["datetime_mode"] = datetime_mode

    if "number_mode" not in kwargs:
        kwargs["number_mode"] = number_mode

    if "uuid_mode" not in kwargs:
        kwargs["uuid_mode"] = uuid_mode

    return kwargs
示例#7
0
def create_app() -> falcon.API:
    mw = []
    if settings.get_bool("CORS_ENABLED"):
        if crossorigin_available is False:
            raise ImportError(
                "'cors-enabled' set but falcon-crossorigin is not installed, "
                "you must install it first to use CORS headers")
        cors = CrossOrigin(
            allow_origins=settings.get("CORS_ALLOW_ORIGINS"),
            allow_methods=settings.get("CORS_ALLOW_METHODS"),
            allow_headers=settings.get("CORS_ALLOW_HEADERS"),
            allow_credentials=settings.get_bool("CORS_ALLOW_CREDENTIALS"),
            expose_headers=settings.get("CORS_EXPOSE_HEADERS"),
            max_age=settings.get_int("CORS_MAX_AGE"),
        )
        mw.append(cors)

    app = falcon.API(middleware=mw)

    dump_kwargs = {"ensure_ascii": False, "sort_keys": True}
    kwargs = json.add_settings_to_kwargs({})
    dump_kwargs.update(kwargs)

    json_handler = falcon.media.JSONHandler(
        dumps=partial(json.dumps, **dump_kwargs),
        loads=partial(json.loads, **kwargs),
    )
    extra_handlers = {
        falcon.MEDIA_JSON: json_handler,
    }

    app.req_options.media_handlers.update(extra_handlers)
    app.resp_options.media_handlers.update(extra_handlers)
    app.add_error_handler(Exception, error_handler)

    setup_routes(app)

    return app
示例#8
0

def _post_fork(server=None, w=None):
    _config_logging()
    start()


def _config_logging():
    for logger in 'gunicorn.access', 'gunicorn.error':
        logging.getLogger(logger).propagate = True
        logging.getLogger(logger).handlers = []


if __name__ == '__main__':
    app = init_app()
    env_name = settings.get("ENV_NAME")
    default_workers = (multiprocessing.cpu_count() * 2) + 1
    opts = {
        "accesslog":
        settings.get("ACCESS_LOG"),
        "access_log_format":
        settings.get("ACCESS_LOG_FORMAT"),
        "bind":
        settings.get("BIND"),
        "errorlog":
        settings.get("ERROR_LOG"),
        "keepalive":
        settings.get("KEEP_ALIVE"),
        "post_fork":
        _post_fork,
        "proc_name":
示例#9
0
def start():
    logger.info("Starting {}".format(settings.get("APP_NAME")))
    logger.info("Environment: {}".format(settings.get("ENV_NAME")))
示例#10
0

def _post_fork(server=None, w=None):
    _config_logging()
    start()


def _config_logging():
    for logger in 'gunicorn.access', 'gunicorn.error':
        logging.getLogger(logger).propagate = True
        logging.getLogger(logger).handlers = []


if __name__ == '__main__':
    app = init_app()
    env_name = settings.get("ENV_NAME")
    default_workers = (multiprocessing.cpu_count() * 2) + 1
    opts = {
        "accesslog": settings.get("ACCESS_LOG"),
        "access_log_format": settings.get("ACCESS_LOG_FORMAT"),
        "bind": settings.get("BIND"),
        "errorlog": settings.get("ERROR_LOG"),
        "keepalive": settings.get("KEEP_ALIVE"),
        "post_fork": _post_fork,
        "proc_name": settings.get("APP_NAME"),
        "max_requests": settings.get("MAX_REQUESTS"),
        "max_requests_jitter": settings.get("MAX_REQUESTS_JITTER"),
        "worker_class": settings.get("WORKER_CLASS"),
        "workers": settings.get("WORKERS") or (1 if env_name == "LOCAL"
                                               else default_workers)
    }
def start():
    logger.info("Starting {}".format(settings.get("APP_NAME")))
    logger.info("Environment: {}".format(settings.get("ENV_NAME")))
示例#12
0

def _post_fork(server=None, w=None):
    _config_logging()
    start()


def _config_logging():
    for logger in "gunicorn.access", "gunicorn.error":
        logging.getLogger(logger).propagate = True
        logging.getLogger(logger).handlers = []


if __name__ == "__main__":
    app = init_app()
    env_name = settings.get("ENV_NAME")
    default_workers = (multiprocessing.cpu_count() * 2) + 1
    opts = {
        "accesslog": settings.get("ACCESS_LOG"),
        "access_log_format": settings.get("ACCESS_LOG_FORMAT"),
        "bind": settings.get("BIND"),
        "errorlog": settings.get("ERROR_LOG"),
        "keepalive": settings.get("KEEP_ALIVE"),
        "post_fork": _post_fork,
        "proc_name": settings.get("APP_NAME"),
        "max_requests": settings.get("MAX_REQUESTS"),
        "max_requests_jitter": settings.get("MAX_REQUESTS_JITTER"),
        "worker_class": settings.get("WORKER_CLASS"),
        "workers": settings.get("WORKERS")
        or (1 if env_name == "LOCAL" else default_workers),
    }