def configure(self, lvl: int): self.log_level = lvl logging.basicConfig(level=self.log_level) self.reset_logging() self.root_logger.setLevel(self.log_level) logger.setLevel(self.log_level) self.root_logger.addHandler(NXOSHandler()) self.set_log_level_all(self.log_level) # add_global_fields(message_type="aiotaskmgr") add_global_fields(log_level=self.loglevel_mapping[lvl])
""" Cross-process log tracing: HTTP server. """ from __future__ import unicode_literals import sys from flask import Flask, request from eliot import to_file, Action, start_action, add_global_fields add_global_fields(process="server") to_file(sys.stdout) app = Flask("server") def divide(x, y): with start_action(action_type="divide", x=x, y=y) as action: result = x / y action.add_success_fields(result=result) return result @app.route("/") def main(): with Action.continue_task(task_id=request.headers["x-eliot-task-id"]): x = int(request.args["x"]) y = int(request.args["y"]) return str(divide(x, y))
""" Cross-process log tracing: HTTP server. """ from __future__ import unicode_literals import sys from flask import Flask, request from eliot import Logger, to_file, Action, start_action, add_global_fields add_global_fields(process="server") to_file(sys.stdout) logger = Logger() app = Flask("server") def divide(x, y): with start_action(logger, "divide", x=x, y=y) as action: result = x / y action.add_success_fields(result=result) return result @app.route("/") def main(): with Action.continue_task(logger, request.headers["x-eliot-task-id"]): x = int(request.args["x"]) y = int(request.args["y"]) return str(divide(x, y))
""" Cross-process log tracing: HTTP client. """ from __future__ import unicode_literals import sys import requests from eliot import Logger, to_file, start_action, add_global_fields add_global_fields(process="client") to_file(sys.stdout) logger = Logger() def remote_divide(x, y): with start_action(logger, "http_request", x=x, y=y) as action: task_id = action.serialize_task_id() response = requests.get("http://localhost:5000/?x={}&y={}".format( x, y), headers={"x-eliot-task-id": task_id}) response.raise_for_status() # ensure this is a successful response result = float(response.text) action.add_success_fields(result=result) return result if __name__ == '__main__': with start_action(logger, "main"): remote_divide(int(sys.argv[1]), int(sys.argv[2]))
""" Cross-process log tracing: HTTP client. """ from __future__ import unicode_literals import sys import requests from eliot import to_file, start_action, add_global_fields add_global_fields(process="client") to_file(sys.stdout) def remote_divide(x, y): with start_action(action_type="http_request", x=x, y=y) as action: task_id = action.serialize_task_id() response = requests.get( "http://localhost:5000/?x={}&y={}".format(x, y), headers={"x-eliot-task-id": task_id}) response.raise_for_status() # ensure this is a successful response result = float(response.text) action.add_success_fields(result=result) return result if __name__ == '__main__': with start_action(action_type="main"): remote_divide(int(sys.argv[1]), int(sys.argv[2]))