Saving an ESN object or one of its child/derivative classes to disk via ESN.to_pickle() and then loading it via pandas.read_pickle() doubles the output of the logger.
Likely two logger instances are created, one when loaded the class and another one one loading the class instance from file.
The fix for this is to re-write the rescomp logger not as a parent class to the ESN classes, but as a class that's defined and created exactly ones when the rescomp module is loaded. Or just re-write it using loguru which is probably just better.