Just a minor comment:

Maybe we want to have someting like:

log_name = factory.getUniqueString()
self.logger._log = getLogger(log_name)

As it make it clear why we use the string.

or better:

self.logger = factory.makeLogger(log_name=log_name) ... and factory will also initialize the python logger.