apache / apache/pulsar-client-cpp
[Bug] CPP/Python Logger cannot be changed between different clients. First one set stays for all Pulsar Clients
- Langage dominant
- C++
- Étoiles
- 71
- Forks
- 90
- Merge moyen
- 2 h 33 min
- PR mergées (30 j)
- 3
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing similar.
### Version
Pulsar 3.1.0
Pulsar-Client Python 3.3.0
OS : Ubuntu 20.04
### Minimal reproduce step
```python
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!
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par exécuter la reproduction Python avec le Pulsar C++ client et suivez la manière dont le logger passé à chaque Pulsar Client est conservé. C’est terminé lorsque les clients distincts utilisent les logger qui leur ont été fournis, tandis qu’un client auquel logger=None est fourni utilise le logger par défaut, comme l’indique la sortie de la reproduction.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, python
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100