python-masscan
python-masscan copied to clipboard
confusion caused by "logging.basicConfig(format=FORMAT)"
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()