Mercurial > libervia-backend
diff sat/plugins/plugin_comp_ap_gateway/http_server.py @ 3881:2e4a0f6050bd
component AP gateway: better verbose logging:
gather data to show according to verbosity and log it all at once with a small `<<<` or
`>>>` indicating the direction. With a verbosity of 3, headers are also shown.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 31 Aug 2022 17:07:03 +0200 |
parents | bd84d289fc94 |
children | 1bd44367337d |
line wrap: on
line diff
--- a/sat/plugins/plugin_comp_ap_gateway/http_server.py Wed Aug 31 17:07:01 2022 +0200 +++ b/sat/plugins/plugin_comp_ap_gateway/http_server.py Wed Aug 31 17:07:03 2022 +0200 @@ -821,18 +821,25 @@ signing_actor: Optional[str] = None ) -> None: if self.apg.verbose: + from pprint import pformat + to_log = [ + "", + f"<<< got {request.method.decode()} request - {request.uri.decode()}" + ] try: data = json.load(request.content) - except (json.JSONDecodeError, ValueError) as e: + except (json.JSONDecodeError, ValueError): pass else: - from pprint import pformat - log.info( - f"==> got {request.method.decode()} request:\n{pformat(data)}\n---" - ) - + to_log.append(pformat(data)) finally: request.content.seek(0) + if self.apg.verbose>=3: + headers = "\n".join( + f" {k.decode()}: {v.decode()}" + for k,v in request.getAllHeaders().items() + ) + to_log.append(f" headers:\n{headers}") path = request.path.decode() ap_url = parse.urljoin( @@ -871,20 +878,13 @@ if ret_data is not None: request.setHeader("content-type", CONTENT_TYPE_AP) request.write(json.dumps(ret_data).encode()) + if self.apg.verbose: + to_log.append(f"--- RET (code: {request.code})---") 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)) + if ret_data is not None: + to_log.append(f"{pformat(ret_data)}") + to_log.append("---") + log.info("\n".join(to_log)) request.finish() async def APPostRequest(self, request: "HTTPRequest"):