[Python] Python logging object is being accumulating on each instantiation

Discussão em 'Python' iniciado por Stack, Dezembro 20, 2024.

  1. Stack

    Stack Membro Participativo

    Consider the following code, where I have created a custom logger class and then in a for loop I am creating logger object multiple times, but instead of adding one log at a time it is adding multiple logs as shown below

    import sys
    import logging
    import os

    import configs

    class Logger:
    def __init__(self, logger_name='logger', log_file_name='logs.log'):
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.DEBUG)

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    file_handler = logging.FileHandler(os.path.join(configs.LOGS_DIR, log_file_name))
    file_handler.setLevel(logging.INFO)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    self.logger = logger

    def get_logger(self):
    return self.logger

    for i in range(5):
    logger = Logger(logger_name=f'test', log_file_name='test').get_logger()
    logger.info(i)


    I was expecting this:

    2024-12-20 21:17:09,623 - test - INFO - 0
    2024-12-20 21:17:09,623 - test - INFO - 1
    2024-12-20 21:17:09,623 - test - INFO - 2
    2024-12-20 21:17:09,623 - test - INFO - 3
    2024-12-20 21:17:09,642 - test - INFO - 4


    but this is the output:

    2024-12-20 21:17:09,623 - test - INFO - 0
    2024-12-20 21:17:09,623 - test - INFO - 1
    2024-12-20 21:17:09,623 - test - INFO - 1
    2024-12-20 21:17:09,623 - test - INFO - 2
    2024-12-20 21:17:09,623 - test - INFO - 2
    2024-12-20 21:17:09,623 - test - INFO - 2
    2024-12-20 21:17:09,623 - test - INFO - 3
    2024-12-20 21:17:09,623 - test - INFO - 3
    2024-12-20 21:17:09,623 - test - INFO - 3
    2024-12-20 21:17:09,623 - test - INFO - 3
    2024-12-20 21:17:09,642 - test - INFO - 4
    2024-12-20 21:17:09,642 - test - INFO - 4
    2024-12-20 21:17:09,642 - test - INFO - 4
    2024-12-20 21:17:09,642 - test - INFO - 4
    2024-12-20 21:17:09,642 - test - INFO - 4


    Why this is happening and how to fix this?

    Continue reading...

Compartilhe esta Página