diff options
| -rw-r--r-- | CHANGES.rst | 4 | ||||
| -rw-r--r-- | src/pyramid/scripts/pserve.py | 14 |
2 files changed, 14 insertions, 4 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 3bd14705d..15d08f295 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -116,6 +116,10 @@ Features are now importable from the ``pyramid.authorization`` namespace. See https://github.com/Pylons/pyramid/pull/3563 +- ``pserve`` now outputs verbose messaging to `stderr` instead of `stdout` + to circumvent buffering issues that exist by default on `stdout`. + See https://github.com/Pylons/pyramid/pull/3593 + Deprecations ------------ diff --git a/src/pyramid/scripts/pserve.py b/src/pyramid/scripts/pserve.py index ce0c454e6..6906a0410 100644 --- a/src/pyramid/scripts/pserve.py +++ b/src/pyramid/scripts/pserve.py @@ -143,7 +143,7 @@ class PServeCommand: def out(self, msg): # pragma: no cover if self.args.verbose > 0: - print(msg) + print(msg, file=sys.stderr) def get_config_path(self, loader): return os.path.abspath(loader.uri.path) @@ -296,7 +296,9 @@ def wsgiref_server_runner(wsgi_app, global_conf, **kw): # pragma: no cover host = kw.get('host', '0.0.0.0') port = int(kw.get('port', 8080)) server = make_server(host, port, wsgi_app) - print('Starting HTTP server on http://%s:%s' % (host, port)) + print( + 'Starting HTTP server on http://%s:%s' % (host, port), file=sys.stderr + ) server.serve_forever() @@ -416,10 +418,14 @@ def cherrypy_server_runner( if host == '0.0.0.0': print( 'serving on 0.0.0.0:%s view at %s://127.0.0.1:%s' - % (port, protocol, port) + % (port, protocol, port), + file=sys.stderr, ) else: - print('serving on %s://%s:%s' % (protocol, host, port)) + print( + 'serving on %s://%s:%s' % (protocol, host, port), + file=sys.stderr, + ) server.start() except (KeyboardInterrupt, SystemExit): server.stop() |
