From 8484b4e0c48524faf02b087eca4b5238fc593c9b Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Fri, 4 Oct 2024 11:16:17 -0700 Subject: improve output logging - logs to file --- logger.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 logger.py (limited to 'logger.py') diff --git a/logger.py b/logger.py new file mode 100644 index 0000000..b636fd1 --- /dev/null +++ b/logger.py @@ -0,0 +1,33 @@ +import time +from datetime import datetime +import pytz + +def _get_datetime_string(): + utc_now = datetime.now(pytz.timezone('UTC')) + pst_now = utc_now.astimezone(pytz.timezone('US/Pacific')) + return pst_now.strftime('%Y-%m-%d %H:%M:%S') + +def track_task_time(message: str): + def decorator(func): + def wrapper(*args, **kwargs): + print(f"[{_get_datetime_string()}] TASK STARTED: " + message) + start = time.time() + result = func(*args, **kwargs) + end = time.time() + print(f"[{_get_datetime_string()}] TASK COMPLETED: {message} {round(end - start, 3)} seconds") + return result + return wrapper + return decorator + +class Logger: + def __init__(self, path: str = "logs.txt", max_size_bytes: int = 1000000): + self.max_size_bytes = max_size_bytes + self.path = path + + def create_log_file(self): + with open(self.path, "w") as file: + file.write("") + + def log(self, message: str): + with open(self.path, "a") as file: + file.write(f"[{_get_datetime_string()}] {message}\n") \ No newline at end of file -- cgit v1.2.3