Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| from datetime import datetime | |
| from pathlib import Path | |
| ROOT_DIR = Path(__file__).resolve().parents[1] | |
| LOG_DIR = ROOT_DIR / "outputs" / "logs" | |
| TASK_PREFIX_MAP = { | |
| "ieee_cis.loader" : ("fraud", "01_loader"), | |
| "ieee_cis.splitter" : ("fraud", "02_splitter"), | |
| "ieee_cis.feature_engineer" : ("fraud", "03_feature_engineer"), | |
| "ieee_cis.preprocessor" : ("fraud", "04_preprocessor"), | |
| "ieee_cis.feature_selector" : ("fraud", "05_feature_selector"), | |
| "fraud_pipeline" : ("fraud", "06_pipeline"), | |
| "fraud_detector" : ("fraud", "07_detector"), | |
| "home_credit.loader" : ("credit", "01_loader"), | |
| "home_credit.splitter" : ("credit", "02_splitter"), | |
| "home_credit.feature_engineer" : ("credit", "03_feature_engineer"), | |
| "home_credit.preprocessor" : ("credit", "04_preprocessor"), | |
| "home_credit.feature_selector" : ("credit", "05_feature_selector"), | |
| "credit_pipeline" : ("credit", "06_pipeline"), | |
| "credit_scorer" : ("credit", "07_scorer"), | |
| "shap_explainer" : ("credit", "08_shap_explainer"), | |
| } | |
| def get_logger(name: str) -> logging.Logger: | |
| logger = logging.getLogger(name) | |
| if logger.handlers: | |
| return logger | |
| logger.setLevel(logging.INFO) | |
| formatter = logging.Formatter( | |
| fmt="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| ) | |
| date_str = datetime.now().strftime("%Y%m%d") | |
| if name in TASK_PREFIX_MAP: | |
| task, step = TASK_PREFIX_MAP[name] | |
| task_log_dir = LOG_DIR / task | |
| task_log_dir.mkdir(parents=True, exist_ok=True) | |
| log_file = task_log_dir / f"{step}_{date_str}.log" | |
| else: | |
| LOG_DIR.mkdir(parents=True, exist_ok=True) | |
| log_file = LOG_DIR / f"{name}_{date_str}.log" | |
| console_handler = logging.StreamHandler() | |
| console_handler.setLevel(logging.INFO) | |
| console_handler.setFormatter(formatter) | |
| file_handler = logging.FileHandler(log_file, encoding="utf-8") | |
| file_handler.setLevel(logging.INFO) | |
| file_handler.setFormatter(formatter) | |
| logger.addHandler(console_handler) | |
| logger.addHandler(file_handler) | |
| return logger |