mirror of
https://github.com/tcsenpai/agenticSeek.git
synced 2025-06-03 01:30:11 +00:00
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
import os, sys
|
|
from typing import List, Tuple, Type, Dict
|
|
import datetime
|
|
import logging
|
|
|
|
class Logger:
|
|
def __init__(self, log_filename):
|
|
self.folder = '.logs'
|
|
self.create_folder(self.folder)
|
|
self.log_path = os.path.join(self.folder, log_filename)
|
|
self.enabled = True
|
|
self.logger = None
|
|
self.last_log_msg = ""
|
|
if self.enabled:
|
|
self.create_logging(log_filename)
|
|
|
|
def create_logging(self, log_filename):
|
|
self.logger = logging.getLogger(log_filename)
|
|
self.logger.setLevel(logging.DEBUG)
|
|
self.logger.handlers.clear()
|
|
self.logger.propagate = False
|
|
file_handler = logging.FileHandler(self.log_path)
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
file_handler.setFormatter(formatter)
|
|
self.logger.addHandler(file_handler)
|
|
|
|
|
|
def create_folder(self, path):
|
|
"""Create log dir"""
|
|
try:
|
|
if not os.path.exists(path):
|
|
os.makedirs(path, exist_ok=True)
|
|
return True
|
|
except Exception as e:
|
|
self.enabled = False
|
|
return False
|
|
|
|
def log(self, message, level=logging.INFO):
|
|
if self.last_log_msg == message:
|
|
return
|
|
if self.enabled:
|
|
self.last_log_msg = message
|
|
self.logger.log(level, message)
|
|
|
|
def info(self, message):
|
|
self.log(message)
|
|
|
|
def error(self, message):
|
|
self.log(message, level=logging.ERROR)
|
|
|
|
def warning(self, message):
|
|
self.log(message, level=logging.WARN)
|
|
|
|
if __name__ == "__main__":
|
|
lg = Logger("test.log")
|
|
lg.log("hello")
|
|
lg2 = Logger("toto.log")
|
|
lg2.log("yo")
|
|
|
|
|
|
|