For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
18 1 0 9

EIKON DATA API python module interferes with application logging

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")

Sample Output:

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[5108] [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.

Regards,

YC

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpythonlogging
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvote
Accepted
13k 32 12 18

Hello @YC,

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")

Output:

2020-10-01 16:16:14,811 - MYAPP - DEBUG - log message 1
2020-10-01 16:16:17,440 - MYAPP - DEBUG - log message 2

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Hi Gurpreet,

Thank you very much for your reply and your answer is verified working. I will use it as a base to make the necessary modification to my codes which has a few other additional log handlers. Since it is solved, I won't pursue why my codes breaks in this version of eikon but not in the earlier vesion. :-) Once again, thank you very much for your quick and spot-on answer! thumbs up!

Click below to post an Idea Post Idea