Download adam/logging_setup.py from SyntheticMDProductions/AI_Development_Automation_Manager: direct link, hf CLI and curl.
- Browser
- Download file 1.33 kB
-
https://huggingface.co/SyntheticMDProductions/AI_Development_Automation_Manager/resolve/refs%2Fpr%2F1/adam/logging_setup.py
- Command line
-
hf download hf://SyntheticMDProductions/AI_Development_Automation_Manager@refs/pr/1/adam/logging_setup.py
-
curl -L -o logging_setup.py https://huggingface.co/SyntheticMDProductions/AI_Development_Automation_Manager/resolve/refs%2Fpr%2F1/adam/logging_setup.py
1.33 kB
| from __future__ import annotations | |
| import logging | |
| from logging.handlers import RotatingFileHandler | |
| from pathlib import Path | |
| def configure_logging(root: Path) -> logging.Logger: | |
| log_dir = root / "logs" | |
| log_dir.mkdir(parents=True, exist_ok=True) | |
| logger = logging.getLogger("adam") | |
| logger.setLevel(logging.INFO) | |
| desired_log = str((log_dir / "adam.log").resolve()) | |
| existing_file = next( | |
| ( | |
| handler | |
| for handler in logger.handlers | |
| if isinstance(handler, RotatingFileHandler) | |
| and str(Path(handler.baseFilename).resolve()) == desired_log | |
| ), | |
| None, | |
| ) | |
| if existing_file is not None: | |
| return logger | |
| for handler in list(logger.handlers): | |
| logger.removeHandler(handler) | |
| handler.close() | |
| formatter = logging.Formatter( | |
| "%(asctime)s | %(levelname)-7s | %(name)s | %(message)s", | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| ) | |
| file_handler = RotatingFileHandler( | |
| log_dir / "adam.log", | |
| maxBytes=2_000_000, | |
| backupCount=3, | |
| encoding="utf-8", | |
| ) | |
| file_handler.setFormatter(formatter) | |
| logger.addHandler(file_handler) | |
| console_handler = logging.StreamHandler() | |
| console_handler.setFormatter(formatter) | |
| logger.addHandler(console_handler) | |
| return logger | |