Mercurial > libervia-backend
diff sat/plugins/plugin_comp_ap_gateway/http_server.py @ 3847:aaa4e7815ba8
component AP gateway: new `verbose` attribute in AP gateway to activate debug logs:
when verbose is not null, object posted or returned on GET request are logged. Check
comments for vebosity level
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 14 Jul 2022 12:55:30 +0200 |
parents | cc13efdd8360 |
children | c0bcbcf5b4b7 |
line wrap: on
line diff
--- a/sat/plugins/plugin_comp_ap_gateway/http_server.py Thu Jul 14 12:55:30 2022 +0200 +++ b/sat/plugins/plugin_comp_ap_gateway/http_server.py Thu Jul 14 12:55:30 2022 +0200 @@ -688,6 +688,20 @@ request: "HTTPRequest", signing_actor: Optional[str] = None ) -> None: + if self.apg.verbose: + try: + data = json.load(request.content) + except (json.JSONDecodeError, ValueError) as e: + pass + else: + from pprint import pformat + log.info( + f"==> got {request.method.decode()} request:\n{pformat(data)}\n---" + ) + + finally: + request.content.seek(0) + path = request.path.decode() ap_url = parse.urljoin( f"https://{self.apg.public_url}", @@ -725,6 +739,20 @@ if ret_data is not None: request.setHeader("content-type", CONTENT_TYPE_AP) request.write(json.dumps(ret_data).encode()) + if self.apg.verbose>=2: + from pprint import pformat + to_log = [f"==> ret (code: {request.code}):\n{pformat(ret_data)}"] + log.info( + + ) + if self.apg.verbose>=3: + headers = "\n".join( + f" {k.decode()}: {v.decode()}" + for k,v in request.getAllHeaders().items() + ) + to_log.append(" headers:\n{headers}") + to_log.append("---") + log.info("\n".join(to_log)) request.finish() async def APPostRequest(self, request: "HTTPRequest"):