লগিংয়ের জন্য আমি আমার অ্যাপ্লিকেশনটিতে লগ 4 জ ব্যবহার করছি । পূর্বে আমি ডিবাগ কল যেমন ব্যবহার করছিলাম:
বিকল্প 1:
logger.debug("some debug text");
তবে কিছু লিঙ্ক প্রস্তাব দেয় যে isDebugEnabled()
আগে যাচাই করা ভাল :
বিকল্প 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
সুতরাং আমার প্রশ্ন " বিকল্প 2 কি কোনওভাবেই কার্যকারিতা উন্নত করে? "।
কারণ যে কোনও ক্ষেত্রে লগ 4 জ কাঠামোর ডিবাগএইনবেবলডের জন্য একই চেক রয়েছে। বিকল্প 2 এর জন্য এটি উপকারী হতে পারে যদি আমরা একক পদ্ধতি বা ক্লাসে একাধিক ডিবাগ স্টেটমেন্ট ব্যবহার করি, যেখানে কাঠামোর জন্য isDebugEnabled()
একাধিকবার পদ্ধতিতে কল করতে হয় না (প্রতিটি কলে); isDebugEnabled()
এক্ষেত্রে এটি কেবল একবার পদ্ধতি কল করে এবং যদি লগ 4 জে ডিবাগ স্তরে কনফিগার করা থাকে তবে বাস্তবে এটি isDebugEnabled()
দুটি বার কল করে:
- ডিবাগ-এনেবল ভেরিয়েবলের মান নির্ধারণের ক্ষেত্রে এবং
- আসলে logger.debug () পদ্ধতি দ্বারা কল করা হয়।
আমি মনে করি না যে আমরা যদি logger.debug()
পদ্ধতিতে বা শ্রেণিতে এবং কলিং debug()
পদ্ধতিতে বিকল্প 1 অনুযায়ী একাধিক বিবৃতি লিখি তবে এটি বিকল্প 4 এর সাথে তুলনায় লগ 4 জ কাঠামোর জন্য ওভারহেড Since যেহেতু isDebugEnabled()
একটি খুব ছোট পদ্ধতি (কোডের বিচারে), এটি হতে পারে ইনলাইনিং জন্য ভাল প্রার্থী হতে।