init commit
This commit is contained in:
63
app/config.py
Normal file
63
app/config.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""
|
||||
Конфигурация логирования для бота
|
||||
"""
|
||||
|
||||
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 сообщение")
|
||||
Reference in New Issue
Block a user