# scraper/logger.py import logging from io import StringIO # In-memory buffer returned to web UI LOG_BUFFER = StringIO() def setup_logger(): logger = logging.getLogger("bookscraper") logger.setLevel(logging.DEBUG) logger.handlers = [] # voorkomen dubbele handlers bij reload # Console handler ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) # Buffer handler for returning to UI mh = logging.StreamHandler(LOG_BUFFER) mh.setLevel(logging.DEBUG) mh.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) logger.addHandler(ch) logger.addHandler(mh) return logger