Beispiel #1
0
 def __call__(self, environ, start_response):
     with log.register_stream(environ["wsgi.errors"]):
         try:
             status, headers, answers = self._handle_request(environ)
         except Exception as e:
             try:
                 method = str(environ["REQUEST_METHOD"])
             except Exception:
                 method = "unknown"
             try:
                 path = str(environ.get("PATH_INFO", ""))
             except Exception:
                 path = ""
             logger.error(
                 "An exception occurred during %s request on %r: "
                 "%s",
                 method,
                 path,
                 e,
                 exc_info=True)
             status, headers, answer = httputils.INTERNAL_SERVER_ERROR
             answer = answer.encode("ascii")
             status = "%d %s" % (status.value,
                                 client.responses.get(status, "Unknown"))
             headers = [("Content-Length", str(len(answer)))
                        ] + list(headers)
             answers = [answer]
         start_response(status, headers)
     return answers
Beispiel #2
0
def _init_application(config_path, wsgi_errors):
    global _application, _application_config_path
    with _application_lock:
        if _application is not None:
            return
        log.setup()
        with log.register_stream(wsgi_errors):
            _application_config_path = config_path
            configuration = config.load([config_path] if config_path else [],
                                        ignore_missing_paths=False)
            log.set_level(configuration.get("logging", "level"))
            _application = Application(configuration)
Beispiel #3
0
def _init_application(config_path, wsgi_errors):
    global _application, _application_config_path
    with _application_lock:
        if _application is not None:
            return
        log.setup()
        with log.register_stream(wsgi_errors):
            _application_config_path = config_path
            configuration = config.load([config_path] if config_path else [],
                                        ignore_missing_paths=False)
            log.set_level(configuration.get("logging", "level"))
            _application = Application(configuration)
Beispiel #4
0
def _init_application(config_path, wsgi_errors):
    global _application, _application_config_path
    with _application_lock:
        if _application is not None:
            return
        log.setup()
        with log.register_stream(wsgi_errors):
            _application_config_path = config_path
            configuration = config.load(
                config.parse_compound_paths(config.DEFAULT_CONFIG_PATH,
                                            config_path))
            log.set_level(configuration.get("logging", "level"))
            # Inspect configuration after logger is configured
            configuration.inspect()
            _application = Application(configuration)
Beispiel #5
0
def _init_application(config_path, wsgi_errors):
    global _application, _application_config_path
    with _application_lock:
        if _application is not None:
            return
        log.setup()
        with log.register_stream(wsgi_errors):
            _application_config_path = config_path
            configuration = config.load(
                config.parse_compound_paths(config.DEFAULT_CONFIG_PATH,
                                            config_path))
            log.set_level(configuration.get("logging", "level"))
            # Log configuration after logger is configured
            for source, miss in configuration.sources():
                logger.info("%s %s", "Skipped missing" if miss else "Loaded",
                            source)
            _application = Application(configuration)
Beispiel #6
0
 def __call__(self, environ, start_response):
     with log.register_stream(environ["wsgi.errors"]):
         try:
             status, headers, answers = self._handle_request(environ)
         except Exception as e:
             try:
                 method = str(environ["REQUEST_METHOD"])
             except Exception:
                 method = "unknown"
             try:
                 path = str(environ.get("PATH_INFO", ""))
             except Exception:
                 path = ""
             logger.error("An exception occurred during %s request on %r: "
                          "%s", method, path, e, exc_info=True)
             status, headers, answer = httputils.INTERNAL_SERVER_ERROR
             answer = answer.encode("ascii")
             status = "%d %s" % (
                 status, client.responses.get(status, "Unknown"))
             headers = [
                 ("Content-Length", str(len(answer)))] + list(headers)
             answers = [answer]
         start_response(status, headers)
     return answers