প্রকল্প সম্পর্কে

Loguru হলো একটি পাইথন লগিং লাইব্রেরি যা ঐতিহ্যগত লগিং সেটআপের জটিলতা দূর করার জন্য ডিজাইন করা হয়েছে। এটি `from loguru import logger` এর মাধ্যমে অ্যাক্সেসযোগ্য একটি একক প্রি-কনফিগারড লগার প্রদান করে, যার জন্য শুরুতে কোনো হ্যান্ডলার, ফরম্যাটার বা ফিল্টারের প্রয়োজন হয় না। `logger.debug()` বা `logger.info()` এর মতো মেথড ব্যবহার করে অবিলম্বে লগিং মেসেজ লেখা যায়, যার আউটপুট ডিফল্টভাবে stderr-এ পাঠানো হয়। এর মূল বৈশিষ্ট্যগুলোর মধ্যে রয়েছে: স্বয়ংক্রিয় রোটেশন (সাইজ, সময় বা বয়সের ভিত্তিতে), রিটেনশন পলিসি এবং কমপ্রেশনসহ সহজ ফাইল লগিং; `str.format()` এর সাথে সামঞ্জস্যপূর্ণ আধুনিক ব্রেস-স্টাইল স্ট্রিং ফরম্যাটিং; টার্মিনালে স্বয়ংক্রিয় কালারাইজেশন; `enqueue=True` এর মাধ্যমে অ্যাসিনক্রোনাস, থ্রেড-সেফ এবং মাল্টিপ্রসেস-সেফ লগিং সমর্থন; এবং ভেরিয়েবল ভ্যালুসহ পূর্ণাঙ্গ এক্সেপশন ট্রেসব্যাক ডিসপ্লে। এটি JSON সিরিয়ালাইজেশন এবং কনটেক্সচুয়াল বাইন্ডিং (`bind()`, `contextualize()`, `patch()`) এর মাধ্যমে স্ট্রাকচার্ড লগিং সমর্থন করে। ব্যবহারকারীরা লেভেল কাস্টমাইজ করতে পারেন, ব্যয়বহুল ফাংশনের জন্য লেজি ইভালুয়েশন যোগ করতে পারেন এবং কম্প্যাটিবিলিটি লেয়ারের মাধ্যমে স্ট্যান্ডার্ড পাইথন লগিংয়ের সাথে ইন্টিগ্রেট করতে পারেন। এনভায়রনমেন্ট ভেরিয়েবল ফরম্যাট বা কালারের মতো ডিফল্ট সেটিংস ব্যক্তিগতকরণ করতে সাহায্য করে। Loguru-তে রেজেক্স-ভিত্তিক লগ এক্সট্রাকশনের জন্য একটি পার্সার রয়েছে এবং ত্রুটির অ্যালার্টের জন্য Apprise-এর মতো নোটিফিকেশন টুলের সাথে এটি ইন্টিগ্রেট করা যায়। স্ক্রিপ্ট এবং লাইব্রেরি উভয়ের জন্য ডিজাইন করা এই লাইব্রেরিটি মডিউল নেমস্পেস অনুযায়ী লগিং নিষ্ক্রিয় বা সক্রিয় করার সুবিধা দেয়। আগে বিল্ট-ইন লগিংয়ের তুলনায় ১০ গুণ দ্রুত হওয়ার দাবি করা হলেও, বর্তমানে সেই দাবিটি বাতিল করা হয়েছে। এই লাইব্রেরিটি পারফরম্যান্স বা নমনীয়তার সাথে আপস না করে ব্যবহারযোগ্যতা, কনফিগারিবিলিটি এবং ডিবাগিং ক্ষমতার ওপর গুরুত্বারোপ করে।