python-masscan icon indicating copy to clipboard operation
python-masscan copied to clipboard

confusion caused by "logging.basicConfig(format=FORMAT)"

Open ke0ge opened this issue 4 years ago • 0 comments

After importing masscan, it will cause my own logger to print multiple logs, which will cause some confusion.

>>> import logging
>>> logger = logging.getLogger("test")
>>> formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
>>> handler = logging.StreamHandler()
>>> handler.setFormatter(formatter)
>>> logger.addHandler(handler)
>>> logger.setLevel(level = logging.INFO)
>>> logger.info("fine")
2020-03-28 00:26:06,310 - test - INFO - fine
>>> import masscan
>>> logger.info("fine")
2020-03-28 00:26:11,949 - test - INFO - fine
[2020-03-28 00:26:11,949] [INFO] [<stdin> 20 line] fine

Although it can be solved in the following way

>>> import logging
>>> logger = logging.getLogger("test")
>>> formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
>>> handler = logging.StreamHandler()
>>> handler.setFormatter(formatter)
>>> logger.addHandler(handler)
>>> logger.setLevel(level = logging.INFO)
>>> logger.info("fine")
2020-03-28 00:26:06,310 - test - INFO - fine
>>> import masscan
>>> logger.info("fine")
2020-03-28 00:26:11,949 - test - INFO - fine
[2020-03-28 00:26:11,949] [INFO] [<stdin> 20 line] fine
>>> logger.parent.handlers=[]
>>> logger.info("fine")
2020-03-28 00:26:19,866 - test - INFO - fine

But in order not to cause unnecessary confusion for newbies, how about do not to use logging.basicConfig()

ke0ge avatar Mar 27 '20 16:03 ke0ge