import logging import sys from logging import Handler, StreamHandler def setup_logging(verbose: bool = False, log_file: str | None = None) -> logging.Logger: log_level = logging.DEBUG if verbose else logging.INFO handlers: list[Handler] = [StreamHandler(sys.stderr)] if log_file: handlers.append(logging.FileHandler(log_file)) logging.basicConfig( level=log_level, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", handlers=handlers, ) return logging.getLogger("tcga_downloader") def get_logger(name: str) -> logging.Logger: return logging.getLogger(f"tcga_downloader.{name}")