এগিয়ে যান: slf4j এর পরিবর্তে log4j2 API এ প্রোগ্রাম করুন
এটি নিরাপদ: লগ 4 জ 2 এপিআই আরও অনেকগুলি slf4j এর মতো একই গ্যারান্টি সরবরাহ করে।
এখন যে লগ 4 জ 2 নিজেই একটি এপিআই এবং একটি বাস্তবায়ন মডিউলে বিভক্ত, এসএলএফ 4 জে ব্যবহার করার আর কোনও মূল্য নেই।
হ্যাঁ, আপনার বিকল্পগুলি উন্মুক্ত রাখা ভাল ইঞ্জিনিয়ারিং অনুশীলন। আপনি পরে অন্য লগিং প্রয়োগে পরিবর্তন করতে চাইতে পারেন।
গত 10 বছর বা তার বেশি সময় ধরে, আপনার আবেদনে এ জাতীয় নমনীয়তা তৈরির অর্থ এসএলএফ 4 জে'র মতো একটি র্যাপার এপিআই ব্যবহার করা using যদিও এই নমনীয়তাটি নিখরচায় আসে না: এই পদ্ধতির অসুবিধাটি হ'ল আপনার অ্যাপ্লিকেশনটি অন্তর্নিহিত লগিং লাইব্রেরির সমৃদ্ধ বৈশিষ্ট্য সেটটি ব্যবহার করতে পারে না।
লগ 4 জ 2 এমন একটি প্রস্তাব দেয় যা আপনার অ্যাপ্লিকেশনটি সর্বনিম্ন সাধারণ ডিনোমিনেটরে সীমাবদ্ধ নয়।
অব্যাহতি ভালভ: log4j-to-slf4j
Log4j2 এর মধ্যে একটি log4j-to-slf4j
সেতু মডিউল অন্তর্ভুক্ত রয়েছে । লগ 4j2 এপিআই-এর বিপরীতে কোডযুক্ত যে কোনও অ্যাপ্লিকেশন যেকোন সময় যে কোনও এসএলফ 4 জে-অনুগত বাস্তবায়নে ব্যাকিংয়ের প্রয়োগটি স্যুইচ করতে পছন্দ করতে পারে।
প্রশ্নে উল্লিখিত হিসাবে, লগ 4 জ 2 এপিআই ব্যবহার করে সরাসরি আরও কার্যকারিতা সরবরাহ করা হয় এবং এসএলএফ 4 জ এর মতো মোড়ক এপিআই ব্যবহার করে বনাম কিছু অ-কার্যকরী সুবিধা রয়েছে:
- বার্তা এপিআই
- অলস লগিংয়ের জন্য ল্যাম্বডাস
- কেবল স্ট্রিংয়ের পরিবর্তে যে কোনও অবজেক্ট লগ করুন
- আবর্জনামুক্ত: ভারার্গস তৈরি করা বা সম্ভব যেখানে স্ট্রিং তৈরি করা এড়ান
- ক্লোজযোগ্য থ্রেডকনটেক্সট MDC থেকে আইটেমগুলি সমাপ্ত হলে স্বয়ংক্রিয়ভাবে সরিয়ে দেয়
( আরও তথ্যের জন্য এসএলএফ 4 জে 10 লগ 4 জ 2 এপিআই বৈশিষ্ট্য উপলব্ধ নেই ))
অ্যাপ্লিকেশনগুলি লগইন লোগোজেজে কোর বাস্তবায়নে লক না করেই লগ 4 জ 2 এপিআইয়ের এই সমৃদ্ধ বৈশিষ্ট্যগুলি নিরাপদে ব্যবহার করতে পারে।
SLF4J এখনও আপনার সুরক্ষা ভালভ, এর অর্থ এই নয় যে আপনার অ্যাপ্লিকেশনটি আর SLF4J API এর বিরুদ্ধে কোড করা উচিত code
প্রকাশ: আমি লগ 4 জ 2 তে অবদান রাখছি।
আপডেট: কিছুটা বিভ্রান্তি দেখা যাচ্ছে যে লগ 4j2 এপিআই-তে প্রোগ্রামিং কোনওভাবে "একটি মুখের জন্য মুখ" প্রবর্তন করে ces লোগ 4 জ 2 এপিআই এবং এসএলএফ 4 জ এর মধ্যে এই সম্মানের কোনও পার্থক্য নেই।
নেটিভ বাস্তবায়ন ব্যবহার করার সময় উভয় এপিআই-তে 2 নির্ভরতা এবং অ-নেটিভ বাস্তবায়নের জন্য 4 নির্ভরতা প্রয়োজন। এসএলএফ 4 জে এবং লগ 4 জ 2 এপিআই এই ক্ষেত্রে একরকম। উদাহরণ স্বরূপ:
slf4j
লগব্যাক (বা লগ 4jv1) অন্তর্ভুক্ত থাকলে কী হবে ? আমাকে তখন আপনার অ্যাপ্লিকেশনটি ব্যবহার করার জন্য তৃতীয় লগার ইনস্টল করতে বাধ্য করা উচিত? অথবা হতে পারে কর্পোরেট সুরক্ষা সিদ্ধান্ত নেয় আপনি কেবলjava.util.logging
উত্পাদন ক্ষেত্রে ব্যবহার করতে পারেন , তবে কি?