pulsar-client-cpp icon indicating copy to clipboard operation
pulsar-client-cpp copied to clipboard

[Bug] CPP/Python Logger cannot be changed between different clients. First one set stays for all Pulsar Clients

Open laurent-chriqui opened this issue 2 years ago • 1 comments

Search before asking

  • [X] I searched in the issues and found nothing similar.

Version

Pulsar 3.1.0 Pulsar-Client Python 3.3.0 OS : Ubuntu 20.04

Minimal reproduce step

import logging
import pulsar

if __name__ == '__main__':
    logger_1 = logging.getLogger('pulsar_logger_1')
    hdlr = logging.StreamHandler()
    log_format = "pulsar_logger_1: [%(asctime)s] [%(levelname)s]: %(message)s"
    logger_1.setLevel(logging.INFO)
    formatter = logging.Formatter(fmt=log_format)
    hdlr.setFormatter(formatter)
    logger_1.addHandler(hdlr)
    logger_1.propagate = False
    client = pulsar.Client('pulsar://localhost:6650', logger=logger_1)
    consumer = client.subscribe('my-topic', 'my-subscription')
    consumer.close()
    client.close()
    logger_2 = logging.getLogger('pulsar_logger_2')
    hdlr = logging.StreamHandler()
    log_format = "pulsar_logger_2: [%(asctime)s] [%(levelname)s]: %(message)s"
    logger_2.setLevel(logging.INFO)
    formatter = logging.Formatter(fmt=log_format)
    hdlr.setFormatter(formatter)
    logger_2.addHandler(hdlr)
    logger_2.propagate = False
    client_2 = pulsar.Client('pulsar://localhost:6651', logger=logger_2)
    consumer_2 = client_2.subscribe('my-topic', 'my-subscription2')
    consumer_2.close()
    client_2.close()
    client_3 = pulsar.Client('pulsar://localhost:6650', logger=None)
    consumer_3 = client_3.subscribe('my-topic', 'my-subscription3')
    consumer_3.close()
    client_3.close()

What did you expect to see?

I would expect the first client to use pulsar_logger_1, the second to use pulsar_logger_2 and the third one to use the default logger.

What did you see instead?

All clients use pulsar_logger_1

Anything else?

It seems that subsequent defined pulsar clients fail to set the logger and keep the first one defined instead.

Are you willing to submit a PR?

  • [ ] I'm willing to submit a PR!

laurent-chriqui avatar Oct 23 '23 14:10 laurent-chriqui

Yeah, it's the design flaw of the logger config in this library.

BewareMyPower avatar Oct 25 '23 17:10 BewareMyPower