diff --git a/environments/python3/server.py b/environments/python3/server.py index 4faca621..e2cd798c 100644 --- a/environments/python3/server.py +++ b/environments/python3/server.py @@ -1,5 +1,7 @@ #!/usr/bin/env python +import logging +import sys import imp from flask import Flask @@ -23,10 +25,26 @@ def f(): if userfunc == None: print("Generic container: no requests supported") abort(500) - return userfunc() + return userfunc() + +# +# Logging setup. TODO: Loglevel hard-coded for now. We could allow +# functions/routes to override this somehow; or we could create +# separate dev vs. prod environments. +# +def setup_logger(loglevel): + global app + root = logging.getLogger() + root.setLevel(loglevel) + ch = logging.StreamHandler(sys.stdout) + ch.setLevel(loglevel) + ch.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + app.logger.addHandler(ch) # # TODO: this starts the built-in server, which isn't the most # efficient. We should use something better. # +setup_logger(logging.DEBUG) +app.logger.info("Starting server") app.run(host='0.0.0.0', port='8888') diff --git a/examples/python/requestdata.py b/examples/python/requestdata.py index 07673f85..93f725a5 100644 --- a/examples/python/requestdata.py +++ b/examples/python/requestdata.py @@ -1,5 +1,7 @@ from flask import request +from flask import current_app def main(): - msg = "%s %s:\n---HEADERS---\n%s\n--BODY--\n%s\n-----\n" % (request.method, request.path, request.headers, request.get_data()) + current_app.logger.info("Received request") + msg = "---HEADERS---\n%s\n--BODY--\n%s\n-----\n" % (request.headers, request.get_data()) return msg