apache / apache/pulsar-client-cpp
[Bug] CPP/Python Logger cannot be changed between different clients. First one set stays for all Pulsar Clients
- Ngôn ngữ chính
- C++
- Star
- 71
- Fork
- 90
- Merge trung bình
- 2 giờ 33 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
### 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!
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách chạy bản tái hiện Python với Pulsar C++ client và theo dõi cách logger được truyền cho mỗi Pulsar Client được giữ lại. Được xem là hoàn tất khi các client riêng biệt sử dụng logger được cung cấp cho chúng, trong khi một client được truyền logger=None sử dụng logger mặc định, như đầu ra của bản tái hiện cho thấy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp, python
- Lĩnh vực
- api, backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100