Source code for riaps.logger.drivers.file_driver

import json
import pathlib

from riaps.logger.drivers.base_driver import BaseDriver


[docs]class ServerLogDriver(BaseDriver): def __init__(self, driver_type, session_name): super().__init__(driver_type) self.session_name = session_name self.nodes = {} self.msg_count = 0
[docs] def handle(self, msg): node_name = msg["client"] data = msg["data"] if node_name not in self.nodes: self.logger.info(f"driver: add new node: {node_name}") p = pathlib.Path("server_logs") p.mkdir(exist_ok=True) f = open(f"server_logs/{node_name}_{self.session_name}.log", "a+") self.nodes[node_name] = f f = self.nodes[node_name] f.write(f"{data}\n") if self.msg_count % 10 == 0: f.flush()
[docs] def close(self): self.logger.info("close file handlers") for node in self.nodes: f = self.nodes[node] f.close()
if __name__ == '__main__': h = ServerLogDriver("file", "test") msg = {"client": "172.21.20.70", "data": "log message"} h.handle(msg) h.close()