From 9449ab8afd288c169b6da57d4913ab48a8dcca73 Mon Sep 17 00:00:00 2001 From: PonomarevDA Date: Mon, 10 Jun 2024 23:44:00 +0300 Subject: [PATCH] add proper logging --- scripts/docker_wrapper.py | 4 +++- scripts/sim.py | 21 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/scripts/docker_wrapper.py b/scripts/docker_wrapper.py index 26c4d95..acf2f31 100755 --- a/scripts/docker_wrapper.py +++ b/scripts/docker_wrapper.py @@ -34,7 +34,9 @@ def kill_container_by_id(container_identifier : str) -> None: if container_identifier is None: return - subprocess.run(["docker", "kill", container_identifier], check=True) + cmd = ["docker", "kill", container_identifier] + print(' '.join(cmd)) + subprocess.run(cmd, check=True) @staticmethod def run_container(sniffer_path: str, image_name: str, sim_config: str, mode: SimMode): diff --git a/scripts/sim.py b/scripts/sim.py index 09b7e76..1b4d1de 100755 --- a/scripts/sim.py +++ b/scripts/sim.py @@ -16,8 +16,9 @@ import os import sys import time +import logging +import datetime from typing import Optional -from pathlib import Path from argparse import ArgumentParser, RawTextHelpFormatter from configurator import configure @@ -25,8 +26,12 @@ from docker_wrapper import DockerWrapper from model import SimModel -REPOSITORY_DIR = Path(__file__).parent.parent.absolute() -VEHICLES_DIR = f"{REPOSITORY_DIR}/configs/vehicles" +REPO_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +VEHICLES_DIR = os.path.join(REPO_DIR, "configs", "vehicles") +BINARY_OUTPUT_PATH = os.path.join(REPO_DIR, "firmware.bin") +LOG_FILENAME = f"log_{datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log" +LOG_PATH = os.path.join(REPO_DIR, "logs", LOG_FILENAME) + COMMANDS = [ SimCommand(name="build", alias='b', mode=None, info="Build the Docker image"), SimCommand(name="kill", alias='', mode=None, info="Kill the running Docker container"), @@ -102,6 +107,16 @@ def process(self, command: Optional[str]) -> None: def main(): + logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + filename=LOG_PATH, + filemode='w') + console = logging.StreamHandler() + console.setLevel(logging.INFO) + formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') + console.setFormatter(formatter) + logging.getLogger().addHandler(console) + parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) command_help = f'{"Command":<36} {"Alias":<10} {"Info"}\n'