Работающий импорт с изменением БД
This commit is contained in:
@@ -1,5 +1,61 @@
|
||||
# utils/logger.py
|
||||
def configure_logger():
|
||||
logger = logging.getLogger("superset_migration")
|
||||
# Настройка формата, обработчиков и уровня логирования
|
||||
return logger
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
class SupersetLogger:
|
||||
def __init__(
|
||||
self,
|
||||
name: str = "superset_tool",
|
||||
log_dir: Optional[Path] = None,
|
||||
level: int = logging.INFO,
|
||||
console: bool = True
|
||||
):
|
||||
self.logger = logging.getLogger(name)
|
||||
self.logger.setLevel(level)
|
||||
|
||||
formatter = logging.Formatter(
|
||||
'%(asctime)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
|
||||
# Очищаем существующие обработчики
|
||||
if self.logger.handlers:
|
||||
for handler in self.logger.handlers[:]:
|
||||
self.logger.removeHandler(handler)
|
||||
|
||||
# Файловый обработчик
|
||||
if log_dir:
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
file_handler = logging.FileHandler(
|
||||
log_dir / f"{name}_{self._get_timestamp()}.log"
|
||||
)
|
||||
file_handler.setFormatter(formatter)
|
||||
self.logger.addHandler(file_handler)
|
||||
|
||||
# Консольный обработчик
|
||||
if console:
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setFormatter(formatter)
|
||||
self.logger.addHandler(console_handler)
|
||||
|
||||
def _get_timestamp(self) -> str:
|
||||
return datetime.now().strftime("%Y%m%d")
|
||||
|
||||
def info(self, message: str, exc_info: bool = False):
|
||||
self.logger.info(message, exc_info=exc_info)
|
||||
|
||||
def error(self, message: str, exc_info: bool = False):
|
||||
self.logger.error(message, exc_info=exc_info)
|
||||
|
||||
def warning(self, message: str, exc_info: bool = False):
|
||||
self.logger.warning(message, exc_info=exc_info)
|
||||
|
||||
def debug(self, message: str, exc_info: bool = False):
|
||||
self.logger.debug(message, exc_info=exc_info)
|
||||
|
||||
def exception(self, message: str):
|
||||
self.logger.exception(message)
|
||||
|
||||
def critical(self, message: str, exc_info: bool = False):
|
||||
self.logger.critical(message, exc_info=exc_info)
|
||||
|
||||
Reference in New Issue
Block a user