diff --git a/custom_logger.py b/custom_logger.py new file mode 100644 index 0000000..7a76c48 --- /dev/null +++ b/custom_logger.py @@ -0,0 +1,58 @@ +import logging +import os +import datetime +from logging.handlers import RotatingFileHandler + + +class Logger: + def __init__(self, name): + # Инициализация логгера + self.logger = logging.getLogger(name) # Сохраняем logger как свойство класса + self.logger.setLevel(logging.INFO) + + # Формат записи логов + formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s - %(lineno)d - %(message)s') + + # Получение сегодняшней даты для имени файла + today = datetime.date.today().strftime('%Y-%m-%d') + + # Создание папки для логов + current_dir = os.path.dirname(os.path.abspath(__file__)) + logs_dir = os.path.join(current_dir, 'logs') + if not os.path.exists(logs_dir): + # Если не существует, создаем ее + os.makedirs(logs_dir) + filename = f'logs/helper_bot_{today}.log' + + # Создание обработчика для файла логов + file_handler = RotatingFileHandler( + filename, + mode='a', + maxBytes=10 * 1024 * 1024, # Максимальный размер файла (10 МБ) + backupCount=3 # Количество резервных файлов + ) + file_handler.setFormatter(formatter) + + # Добавление обработчика к логгеру + self.logger.addHandler(file_handler) + + # Добавление стандартного обработчика + # чтобы сообщения также отображались на консоли + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + self.logger.addHandler(console_handler) + + def info(self, message): + self.logger.info(message) + + def debug(self, message): + self.logger.debug(message) + + def warning(self, message): + self.logger.warning(message) + + def error(self, message): + self.logger.error(message) + + def critical(self, message): + self.logger.critical(message) \ No newline at end of file