Files
TG_autoposter/app/config.py
2025-12-18 05:55:32 +09:00

64 lines
2.0 KiB
Python

"""
Конфигурация логирования для бота
"""
import logging
import logging.handlers
import os
from datetime import datetime
# Создаем директорию для логов если её нет
LOGS_DIR = "logs"
if not os.path.exists(LOGS_DIR):
os.makedirs(LOGS_DIR)
# Формат логов
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
LOG_DATEFORMAT = '%Y-%m-%d %H:%M:%S'
# Уровень логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_LEVEL = os.getenv('LOG_LEVEL', 'INFO')
def setup_logging():
"""Настройка логирования для всего приложения"""
# Корневой logger
root_logger = logging.getLogger()
root_logger.setLevel(getattr(logging, LOG_LEVEL))
# Формат
formatter = logging.Formatter(LOG_FORMAT, datefmt=LOG_DATEFORMAT)
# Handler для консоли
console_handler = logging.StreamHandler()
console_handler.setLevel(getattr(logging, LOG_LEVEL))
console_handler.setFormatter(formatter)
root_logger.addHandler(console_handler)
# Handler для файла (ротация по дням)
log_file = os.path.join(LOGS_DIR, f'bot_{datetime.now().strftime("%Y-%m-%d")}.log')
file_handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=10485760, # 10 MB
backupCount=5
)
file_handler.setLevel(logging.DEBUG) # Файл логирует всё
file_handler.setFormatter(formatter)
root_logger.addHandler(file_handler)
# Дополнительные логи для telegram
logging.getLogger('telegram').setLevel(logging.WARNING)
return root_logger
if __name__ == "__main__":
# Пример использования
setup_logging()
logger = logging.getLogger(__name__)
logger.debug("Это debug сообщение")
logger.info("Это info сообщение")
logger.warning("Это warning сообщение")
logger.error("Это error сообщение")