aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2019-05-29 19:35:17 -0700
committerGravatar MarkKoz <[email protected]>2019-05-29 19:44:33 -0700
commitc1c854e0ad4deb5c4fa8eb2a35b43a042f15255c (patch)
tree9e8cb4434cbc4857c91d144185105c4235853ac9
parentDocument the API (diff)
Add basic logger for responses
-rw-r--r--snekbox/api/middleware/__init__.py3
-rw-r--r--snekbox/api/middleware/logger.py11
-rw-r--r--snekbox/api/snekapi.py3
3 files changed, 16 insertions, 1 deletions
diff --git a/snekbox/api/middleware/__init__.py b/snekbox/api/middleware/__init__.py
new file mode 100644
index 0000000..ba97ca6
--- /dev/null
+++ b/snekbox/api/middleware/__init__.py
@@ -0,0 +1,3 @@
+from .logger import LoggingMiddleware
+
+__all__ = ("LoggingMiddleware",)
diff --git a/snekbox/api/middleware/logger.py b/snekbox/api/middleware/logger.py
new file mode 100644
index 0000000..393fc64
--- /dev/null
+++ b/snekbox/api/middleware/logger.py
@@ -0,0 +1,11 @@
+import logging
+
+log = logging.getLogger("snekbox.api")
+
+
+class LoggingMiddleware:
+ """Log basic information about responses."""
+
+ def process_response(self, req, resp, resource, req_succeeded):
+ """Log the method, route, and status of a response."""
+ log.info(f"{req.method} {req.relative_uri} {resp.status}")
diff --git a/snekbox/api/snekapi.py b/snekbox/api/snekapi.py
index 1e011f1..87c32ad 100644
--- a/snekbox/api/snekapi.py
+++ b/snekbox/api/snekapi.py
@@ -1,5 +1,6 @@
import falcon
+from .middleware import LoggingMiddleware
from .resources import EvalResource
@@ -14,6 +15,6 @@ class SnekAPI(falcon.API):
"""
def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
+ super().__init__(middleware=[LoggingMiddleware()], *args, **kwargs)
self.add_route("/eval", EvalResource())