Spaces:
Running
Running
| import logging | |
| import sys | |
| from pathlib import Path | |
| from datetime import datetime | |
| from pythonjsonlogger import jsonlogger | |
| LOGS_DIR = Path("artifacts/logs") | |
| LOGS_DIR.mkdir(parents=True, exist_ok=True) | |
| LOG_FILE = f"{datetime.now().strftime('%Y%m%d_%H%M%S')}.log" | |
| LOG_FILE_PATH = LOGS_DIR / LOG_FILE | |
| def get_logger(name: str, level: int = logging.INFO, json_format: bool = False) -> logging.Logger: | |
| logger = logging.getLogger(name) | |
| logger.setLevel(level) | |
| if logger.handlers: | |
| return logger | |
| if json_format: | |
| formatter = jsonlogger.JsonFormatter( | |
| '%(asctime)s %(name)s %(levelname)s %(message)s', | |
| datefmt='%Y-%m-%d %H:%M:%S' | |
| ) | |
| else: | |
| formatter = logging.Formatter( | |
| '[%(asctime)s] %(name)s - %(levelname)s - %(message)s', | |
| datefmt='%Y-%m-%d %H:%M:%S' | |
| ) | |
| file_handler = logging.FileHandler(LOG_FILE_PATH) | |
| file_handler.setFormatter(formatter) | |
| logger.addHandler(file_handler) | |
| console_handler = logging.StreamHandler(sys.stdout) | |
| console_handler.setFormatter(formatter) | |
| logger.addHandler(console_handler) | |
| return logger | |
| logger = get_logger(__name__) |