| from pathlib import Path | |
| import logging.config | |
| import json | |
| root_directory = Path(__file__).resolve().parents[3] | |
| logging_configuration_file = root_directory / "config.json" | |
| log_dir = root_directory / "logs" | |
| log_dir.mkdir(parents=True, exist_ok=True) | |
| def configure_logging(): | |
| try: | |
| with open(file=logging_configuration_file) as f: | |
| log_config = json.load(fp=f) | |
| logging.config.dictConfig(config=log_config) | |
| except FileNotFoundError: | |
| raise FileNotFoundError(f"Logging configuration file not found: {logging_configuration_file}") | |
| except PermissionError: | |
| raise PermissionError(f"Permission denied to access logging configuration file: {logging_configuration_file}") | |
| except json.JSONDecodeError: | |
| raise ValueError(f"Invalid JSON in logging configuration file: {logging_configuration_file}") | |
| except Exception as e: | |
| raise ValueError(f"Error while loading logging configuration file: {e}") |