is there away to make this code not spam in the second file without interfering with any other functions? "Anomaly.log" is being spammed although "Bandit.log" is not being spammed, what am I doing wrong? import pyautogui import schedule import time import logging # Initialize a counter call_count = 0 # Example calls def logger(): logging.basicConfig(level=logging.INFO, filename="bandit.log", filemode="w", format="%(asctime)s - %(levelname)s - %(message)s") logger = logging.getLogger(__name__) logger.propagate = False handler = logging.FileHandler('anomaly.log') formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) try: location = pyautogui.locateOnScreen('1.png', confidence=0.9) if pyautogui.locateOnScreen('1.png', confidence=0.9): global call_count call_count += 1 logging.info(call_count) except pyautogui.ImageNotFoundException: pass def bandit_cycle(): try: location = pyautogui.locateOnScreen('1.png', confidence=0.9) logging.info('x1 Data found') time.sleep(1.5) except: pass # schedule for main working code schedule.every(1).seconds.do(bandit_main) # schedule for main working code schedule.every(1).seconds.do(logger) while True: schedule.run_pending() time.sleep(1)  Anomaly.log  2025-02-03 14:51:19,773 - main - INFO - 1 2025-02-03 14:51:19,773 - main - INFO - 1 2025-02-03 14:51:19,773 - main - INFO - 1 2025-02-03 14:51:19,773 - main - INFO - 1 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2 2025-02-03 14:51:57,076 - main - INFO - 2  Bandit.log  2025-02-03 14:51:15,548 - INFO - x1 Data found 2025-02-03 14:51:19,773 - INFO - 1 2025-02-03 14:51:52,877 - INFO - x1 Data found 2025-02-03 14:51:57,076 - INFO - 2 2025-02-03 14:52:30,495 - INFO - x5 Data found 
When you call this function the first time: logger = logging.getLogger(__name__)  It creates a new logger object. But if you call it again within the same program execution, it remembers the logger object you already created and just fetches it, instead of creating a new one. And then each time you call this: logger.addHandler(handler)  It adds another handler to the logger object. So you end up with a logger that has dozens, or even hundreds, of handlers. And messages are logged by each handler on the logger. You should rearrange your logging setup/initialization code so it isn't called multiple times.