আমি পাইথন লগিং ব্যবহার করছি এবং কোনও কারণে আমার সমস্ত বার্তা দু'বার প্রদর্শিত হচ্ছে।
লগিং কনফিগার করার জন্য আমার কাছে একটি মডিউল রয়েছে:
# BUG: It's outputting logging messages twice - not sure why - it's not the propagate setting.
def configure_logging(self, logging_file):
self.logger = logging.getLogger("my_logger")
self.logger.setLevel(logging.DEBUG)
self.logger.propagate = 0
# Format for our loglines
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
# Setup console logging
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
self.logger.addHandler(ch)
# Setup file logging as well
fh = logging.FileHandler(LOG_FILENAME)
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
self.logger.addHandler(fh)
পরে, আমি লগিং কনফিগার করতে এই পদ্ধতিটি কল করি:
if __name__ == '__main__':
tom = Boy()
tom.configure_logging(LOG_FILENAME)
tom.buy_ham()
এবং তারপরে বলুন, বাই_হ্যাম মডিউল, আমি ফোন করব:
self.logger.info('Successfully able to write to %s' % path)
এবং কোনও কারণে, সমস্ত বার্তা দুটিবার প্রদর্শিত হচ্ছে। আমি স্ট্রিম হ্যান্ডলারগুলির মধ্যে একটিতে মন্তব্য করেছি, এখনও একই জিনিস। অদ্ভুত এক বিট, কেন ঘটছে তা নিশ্চিত নয় ... হ্যাঁ। ধরে নিচ্ছি আমি স্পষ্ট কিছু মিস করেছি।
চিয়ার্স, ভিক্টর
configure_logging()যে দু'বার কল করা হয়নি (যেমন কনস্ট্রাক্টরের কাছ থেকেও)? বয় () এর কেবলমাত্র একটি উদাহরণ তৈরি করা হয়েছে?