minaskar / zeus

⚡️ zeus: Lightning Fast MCMC ⚡️
https://zeus-mcmc.readthedocs.io/
GNU General Public License v3.0
225 stars 34 forks source link

Provide user option to override default logging #31

Open pscicluna opened 1 year ago

pscicluna commented 1 year ago

When calling zeus from a script/package that does its own logging, the fact that zeus relies on the root logger is somewhat vexing as it may result in duplicate logging. This commit exposes the option to pass an existing logger to the sampler so that the user can modify logging behaviour if they so desire, or capture zeus' log output in the same streams as other logs. This also enables the user to prevent zeus from clobbering handlers that have already been defined for the root logger.

The changes do not alter the behaviour of existing code - the default of None ensures that any existing code will follow the current logic. While there are other ways of avoiding duplicate logs, this does provide more customisation options to users at rather low cost to maintain.