Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/logger/Logger.py
5925 views
from os.path import exists1import csv2from datetime import datetime3from dataclasses import dataclass4import configparser567@dataclass(eq=False, repr=True)8class LogData:9event_id: str10key: str11value: str12datetime: datetime = datetime.now()131415class Logger:16""" Class for logger """17""" ToDo Change log from CSV into DB"""1819log_line_dict = dict(datetime=datetime.now(), msg="")2021def __init__(self, conf_name_print_mode):22self._file_name = None23self._log_storage = list()24self._header = ["event_id", "datetime", "key", "value"]25self._print_mode = None26self._config = configparser.ConfigParser()27self._config.read('config.ini')28self._print_mode = True if self._config.get(section='main', option=conf_name_print_mode) == 'True' else False2930@property31def print_mode(self):32return self._print_mode3334@print_mode.setter35def print_mode(self, mode):36self._print_mode = mode3738@property39def file_name(self):40return self._file_name4142@file_name.setter43def file_name(self, file_name):44self._file_name = "logger/log_result/" + file_name + '.csv'45if not exists(self._file_name):46self.create_csv_file()4748def create_csv_file(self):4950with open(self._file_name, 'w', encoding='UTF8', newline='') as file:51# writer = csv.DictWriter(file,delimiter=";")52writer = csv.DictWriter(file, fieldnames=self._header)53writer.writeheader()5455def save_log(self, log_line_dict: LogData):56# Convert data57with open(self._file_name, 'a', encoding='UTF8', newline='') as file:58writer = csv.DictWriter(file, fieldnames=self._header)59writer.writerow({'event_id': log_line_dict.event_id, 'key': log_line_dict.key,60'value': log_line_dict.value, 'datetime': log_line_dict.datetime})6162def add_log(self, log_line_dict: LogData):63log_line_dict.datetime = datetime.today().now()64if self._print_mode:65# ToDo66self._print_start()67print(log_line_dict)68self._print_end()69self._log_storage.append(log_line_dict)70self.save_log(log_line_dict)7172@staticmethod73def _print_start():74print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")7576@staticmethod77def _print_end():78print("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")798081