Hello. I have just updated the EIKON python module ("eikon") to version 1.1.6.post3. This new version is causing duplicate log messages after calling the eikon.set_app_key() function. The issue did not exist in the older version that I was using (can't remember which version).
Sample code to reproduce the problem:
import eikon as ek import logging # set up my app logger logger = logging.getLogger("MYAPP") logger.setLevel(logging.DEBUG) sh = logging.StreamHandler() sh.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') sh.setFormatter(formatter) logger.addHandler(sh) # log message 1 is ok logger.debug("log message 1") # the culprit ek.set_app_key("myappkey123") # log message 2 has a duplicate (shown in bold below) logger.debug("log message 2")
2020-10-01 21:46:00,674 - MYAPP - DEBUG - log message 1
2020-10-01 21:46:01,005 - MYAPP - DEBUG - log message 2
2020-10-01 21:46:01,005 P [MainThread 68] log message 2
As shown above, the eikon module has somehow interfered with my app logging, and all subsequent log messages after the set_app_key() call would have this extra duplicate which is quite annoying. Note that this is not a log message from within EIKON but somehow the set_app_key() has done something to the global logging settings, causing the logging module to write an extra log message.
Is this a bug? Is there anyway to overcome this?
Appreciate your kind assistance. Thank you.
I think modifying the stream handler of the root logging system is the cause of this issue. Try this approach:
import eikon as ek import logging logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger("MYAPP") logger.setLevel(logging.DEBUG) logger.debug("log message 1") ek.set_app_key("MYAPP") logger.debug("log message 2")
2020-10-01 16:16:14,811 - MYAPP - DEBUG - log message 1
2020-10-01 16:16:17,440 - MYAPP - DEBUG - log message 2