জাভাতে লগার কী এবং আপনি কেন এটি ব্যবহার করেন?

জাভাতে লগার সম্পর্কিত এই নিবন্ধটি প্রকল্পগুলি তৈরি করার সময় লগিং সমাধানের জন্য ব্যবহৃত জাভা লগিং এপিআইয়ের একটি বিস্তৃত গাইড guide

লগিং একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ত্রুটিগুলি চিহ্নিত করার জন্য বিকাশকারীদের বিবেচনা করা উচিত। , সর্বাধিক জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজগুলির মধ্যে একটি হওয়ায় একটি বেসিক লগিং এপিআই সরবরাহ করে লগিংয়ের জন্য একটি কাস্টমাইজযোগ্য পদ্ধতির সাথে আসে। সুতরাং, জাভাতে লগার সম্পর্কিত এই নিবন্ধে, আমি কীভাবে আলোচনা করতে যাচ্ছি জাভাতে এক্সটেনসেবল লগিং সক্ষম করতে এই বৈশিষ্ট্যটি ব্যবহার করতে পারেন।



নিম্নলিখিত নিবন্ধগুলি এই নিবন্ধে আবৃত হবে:



অ্যারে জাভাস্ক্রিপ্ট আকার পেতে
    1. লগিং জন্য প্রয়োজন
    2. লগিং উপাদান
    3. লগার কী?
    4. অ্যাপেন্ডার বা হ্যান্ডলার
    5. বিন্যাস বা বিন্যাসক

এর আগে, আমরা জাভাতে লগিনে গভীর ডুব দিই, আসুন লগিংয়ের প্রয়োজনীয়তাটি বুঝতে পারি।

লগিং জন্য প্রয়োজন

অ্যাপ্লিকেশন তৈরি করার সময়, আমরা প্রায়শই ত্রুটির মুখোমুখি হই যা ডিবাগ করতে হয়। সুতরাং, লগগুলির সাহায্যে, আমরা সহজেই ত্রুটি এবং অস্বাভাবিক পরিস্থিতির রেকর্ড সহ অ্যাপ্লিকেশনটিতে কী ঘটছে সে সম্পর্কে সহজেই তথ্য পেতে পারি। এখন, এটি আপনার মনে আঘাত করতে পারে যে, System.out.print () বিবৃতিটি কেন ব্যবহার করবেন না । ঠিক আছে, এই বিবৃতিগুলির সাথে সমস্যা হ'ল লগ বার্তা কেবল কনসোলে মুদ্রিত হবে। সুতরাং, একবার আপনি কনসোল বন্ধ করলে, স্বয়ংক্রিয়ভাবে, সমস্ত লগগুলি হারিয়ে যাবে। অতএব, লগগুলি স্থায়ীভাবে সংরক্ষণ করা হবে না এবং এটি এককভাবে থ্রেডযুক্ত পরিবেশ হিসাবে এক এক করে প্রদর্শিত হবে।



এই জাতীয় সমস্যা এড়ানোর জন্য জাভাতে লগইন করা সহায়তার সাহায্যে সরল করা হয়েছেAPI এর মাধ্যমে সরবরাহ করাjava.util.loggingপ্যাকেজ, এবংorg.apache.log4j। *প্যাকেজ

লগিং উপাদান

জাভা লগিং উপাদানগুলি বিকাশকারীকে লগগুলি তৈরি করতে, লগগুলি সংশ্লিষ্ট গন্তব্যে পাস করতে এবং একটি সঠিক বিন্যাস বজায় রাখতে সহায়তা করে। নিম্নলিখিতটি তিনটি উপাদান:

  • লগার - লগ রেকর্ডগুলি ক্যাপচার এবং এটিকে সংশ্লিষ্ট অ্যাপেন্ডারের কাছে দেওয়ার জন্য দায়বদ্ধ।
  • সংযোজনকারী বা হ্যান্ডলার - তারা কোনও গন্তব্যে লগ ইভেন্টগুলি রেকর্ড করার জন্য দায়বদ্ধ। আউটপুট প্রেরণের আগে লেআউটসের সাহায্যে অ্যাপেন্ডাররা ইভেন্টগুলি ফর্ম্যাট করে।
  • বিন্যাস বা বিন্যাসক - লগ এন্ট্রিতে ডেটা প্রদর্শিত হবে কীভাবে তা নির্ধারণ করার জন্য দায়বদ্ধ।

তিনটি উপাদানগুলির কাজ করার জন্য আপনি নীচের চিত্রটি উল্লেখ করতে পারেন:



লগিংয়ের উপাদানগুলি - জাভাতে লগার - এডুরেকা

যখন কোনও অ্যাপ্লিকেশন কোনও লগিং কল করে, লগার উপাদানটি লগরেকর্ডে ইভেন্টটি রেকর্ড করে উপযুক্ত অ্যাপেন্ডারের কাছে ফরোয়ার্ড করে। তারপরে এটি প্রয়োজনীয় বিন্যাস অনুযায়ী লেআউটটি ব্যবহার করে রেকর্ডটি ফর্ম্যাট করে। এগুলি ছাড়াও ইভেন্টগুলির জন্য কোন অ্যাপেন্ডার ব্যবহার করা উচিত তা নির্দিষ্ট করতে আপনি একাধিক ফিল্টারও ব্যবহার করতে পারেন।

এখন, আসুন আমরা বুঝতে পারি জাভাতে লগারে কী গভীরতা রয়েছে।

জাভাতে লগার কী?

জাভাতে লগারগুলি হ'ল অবজেক্ট যা লগ ইভেন্টগুলিকে ট্রিগার করে, সেগুলি তৈরি করা হয় এবং অ্যাপ্লিকেশনের কোডে ডাকা হয়, যেখানে তারা লগ ইভেন্টগুলি পরবর্তী উপাদানগুলিতে প্রেরণের আগে উত্পন্ন করে যা একটি অ্যাপেন্ডর ender বিভিন্ন ইভেন্টের প্রতিক্রিয়া জানাতে বা শ্রেণিবিন্যাসে লোগার ব্যবহার করতে আপনি একক শ্রেণিতে একাধিক লগার ব্যবহার করতে পারেন। এগুলির নাম সাধারণত হায়ারারিকাল ডট-বিচ্ছিন্ন নেমস্পেস ব্যবহার করে করা হয় are এছাড়াও, সমস্ত লগারের নাম অবশ্যই লগ করা উপাদানটির ক্লাস বা প্যাকেজের নামের উপর ভিত্তি করে থাকতে হবে।

এগুলি ছাড়াও প্রতিটি লগার দের নিকটতম বিদ্যমান পূর্বপুরুষের একটি ট্র্যাক রাখে লগস নেমস্পেস এবং এর সাথে একটি 'স্তর' যুক্ত রয়েছে। ঠিক আছে, আমি এই নিবন্ধটির শেষভাগে লগারদের নিয়ে আলোচনা করব, তবে তার আগে, আপনাকে জাভাতে লগার কীভাবে তৈরি করতে হয় তা আপনাকে দেখান।

নতুন লগার তৈরি করুন

জাভাতে নতুন লগার তৈরি করার প্রক্রিয়াটি বেশ সহজ। আপনি ব্যবহার করতে হবেলগার.জেটলগার ()পদ্ধতি দ্যgetLogger () লগারের নাম সনাক্ত করে এবং প্যারামিটার হিসাবে স্ট্রিং নেয়। সুতরাং, যদি কোনও লগার এর আগে উপস্থিত থাকে তবে সেই লগারটি ফিরে আসে, অন্যথায় একটি নতুন লগার তৈরি হয়।

সি ++ নামস্থান কী

বাক্য গঠন:

স্ট্যাটিক লগার লগার = লগার.সেটলগার (স্যাম্পেলক্লাস.ক্লাস.সেটনাম ())

এখানে স্যাম্পলক্লাস হল শ্রেণীর নাম যার জন্য আমরা লগার অবজেক্টটি পাচ্ছি।

উদাহরণ:

পাবলিক ক্লাস গ্রাহক {বেসরকারী স্ট্যাটিক ফাইনাল লগার LOGGER = Logger.getLogger (গ্রাহক। কলা) পাবলিক শূন্য get getCustomerDetails () {}}

এখন আমি আপনাকে জাভাতে লগার তৈরি করার পদ্ধতি সম্পর্কে কী বলেছি, আসুন লগিংয়ের জন্য উপলব্ধ বিভিন্ন স্তরগুলি দেখতে দিন।

লগ স্তর

লগ স্তরগুলি তাদের তীব্রতা বা প্রয়োগের স্থায়িত্বের উপর প্রভাব দ্বারা লগগুলিকে শ্রেণীবদ্ধ করতে ব্যবহৃত হয়। দ্যorg.apache.log4j। *প্যাকেজ এবংjava.util.loggingউভয়ই লগিংয়ের বিভিন্ন স্তর সরবরাহ করে। আসুন আমরা একে একে একে একে দেখে নেওয়া যাক।

org.apache.log4j। *প্যাকেজটি নিম্নোক্ত ক্রমে নিম্নলিখিত স্তরগুলি সরবরাহ করে:

  • মারাত্মক
  • ত্রুটি
  • সতর্কতা
  • তথ্য
  • ডিবগ

java.util.loggingপ্যাকেজটি নিম্নোক্ত ক্রমে নিম্নলিখিত স্তরগুলি সরবরাহ করে:

  • সংরক্ষণ করুন (উচ্চতম স্তর)
  • সতর্কতা
  • তথ্য
  • কনফিগ
  • জরিমানা
  • ফাইন
  • শেষ (সর্বনিম্ন স্তর)

এগুলি ছাড়াও, উপরের প্যাকেজটি দুটি অতিরিক্ত স্তরও সরবরাহ করেসবএবংবন্ধসমস্ত বার্তা লগ করার জন্য এবং যথাক্রমে লগিং অক্ষম করার জন্য ব্যবহৃত হয়

জাভা ব্যবহার করে লগ ইন করার উদাহরণorg.apache.log4j। *প্যাকেজ:

org.apache.log4j.Logger পাবলিক ক্লাস কাস্টমার {স্ট্যাটিক লগার লগার = লগার.সেটলগার (গ্রাহক.ক্লাস) পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {লগার.অরার ('এআরআরওআর') লগার ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('ফাইনাল আউটপুট')}

সুতরাং যদি আপনার আউটপুট হয়ওয়ার্ন-লেভেল হিসাবে আমাদের মধ্যে রুট লগার log4j.properties ফাইল, তারপরে ওয়ার্নের চেয়ে উচ্চতর অগ্রাধিকার সহ সমস্ত ত্রুটি বার্তাগুলি নীচে হিসাবে মুদ্রিত হবে:

আপনি এছাড়াও থেকে সেটলিভেল () পদ্ধতিটি ব্যবহার করে স্তরটি নির্ধারণ করতে পারেনjava.util.loggingনীচে হিসাবে প্যাকেজ:

logger.setLevel (স্তর.আরবার্নিং)

জাভা ব্যবহার করে লগ ইন করার উদাহরণjava.util.loggingপ্যাকেজ:

প্যাকেজ এডুরিকা আমদানি java.io.IOException আমদানি java.util.logging.Level আমদানি java.util.logging.Logger আমদানি java.util.logging। * শ্রেণীর এডুরিকালগার {বেসরকারী চূড়ান্ত স্ট্যাটিক লোগার LOGGER = লগার.জাগল_লগ্গার (লগার অকার্যকর নমুনা লগ () O লোগার.লগ (স্তর.ওয়ার্নিং, 'এডুড়েকায় আপনাকে স্বাগতম!')}} পাবলিক বর্গ গ্রাহক {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {এডুরেকা লগার ইজেক্ট = নতুন এডুরেকা লগার () obj.sampleLog () লগ ম্যানেজার slg = LogManager.getLogManager () লগার লগ = slg.getLogger (লগার.গ্লোবাল_এলজিজিআলই) লগ.লগ (স্তর.ওয়ার্নিং, 'হাই! এডুরেকা থেকে আপনাকে স্বাগতম')}

ব্যবহার করে আপনার অ্যাপ্লিকেশনটিতে লগিং সক্ষম করতেorg.apache.log4j। *প্যাকেজ বাjava.util.loggingপ্যাকেজ, আপনি বৈশিষ্ট্য ফাইল কনফিগার করতে হবে। জাভাতে লগার সম্পর্কিত এই নিবন্ধের পরবর্তী, আসুন আমরা তাদের উভয়ের বৈশিষ্ট্য ফাইলটি আলোচনা করব।

লগ 4 জে এবং জাভা ইউটিলি প্যাকেজের প্রোপার্টি ফাইল

নমুনা লগ 4 জ প্রোপার্টি ফাইল:

# রুট লগার বিকল্প সক্ষম করুন log4j.rootLogger = INFO, ফাইল, stdout # ফাইল প্রিন্ট করতে সংযুক্তকারীদের সংযুক্ত করুন log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender j file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.CversversPattern =% d {yyy-MM-ddH : ss}% -5p% c {1}:% L -% m% n # কনসোল log4j.appender.stdout = org.apache.log4j.ConsoleAppender লগ 4j.appender.stdout.Target = System.out এ মুদ্রণের জন্য অ্যাপেন্ডারদের সংযুক্ত করুন log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.CversversPattern =% d {yyyy-MM-dd HH: mm: ss s% -5p% c {1}:% L -% মি% এন
  • লোগ 4 জে বৈশিষ্ট্য ফাইলটি প্রকল্পের এসআরসি ফোল্ডারের ভিতরে তৈরি করা হয়েছে।
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> একটি ফাইলের সমস্ত লগ মুদ্রণ
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> কনসোলে সমস্ত লগ মুদ্রণ করে
  • লগ 4j.appender.file.File = ডি: লগলগিং.লগ -> লগ ফাইলের অবস্থান নির্দিষ্ট করে
  • log4j.appender.file.MaxFileSize = 10MB -> লগ ফাইলের সর্বোচ্চ আকার 10MB
  • log4j.appender.file.MaxBackupIndex = 5 -> ব্যাকআপ ফাইলের সংখ্যা 5 এ সীমাবদ্ধ করে
  • লগ 4j.appender.file.layout = org.apache.log4j.PatternLayout -> লগগুলি যে প্যাটার্নে লগ ফাইলটিতে মুদ্রণ করবে তা সুনির্দিষ্ট করে।
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss s% -5p% c {1}:% L -% m% n -> ডিফল্ট রূপান্তর প্যাটার্ন সেট করে।

নমুনা জাভা ইউটিজ প্যাকেজ প্রোপার্টি ফাইল

হ্যান্ডলারগুলি = java.util.logging.ConsoleHandler .level = সতর্কতা # আউটপুট ডিফল্ট ডিরেক্টরি java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = সংরক্ষণ করা হবে 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XML Formatter # লগের মাত্রা সতর্কতা এবং উপরের মধ্যে সীমাবদ্ধ থাকবে। java.util.logging.ConsoleHandler.level = সতর্কতা java.util.logging.ConsoleHandler.formatter = java.util.logging.Simple Formatter

এখানে,

উবুন্টুতে হ্যাডোপ স্থাপন করা
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> লগ ফাইলগুলিতে লিখিত হবেসি: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->লগারের সর্বাধিক পরিমাণ যা বাইটগুলিতে কোনও একটি ফাইলে লিখে।
  • java.util.logging.FileHandler.count = 1 -> আউটপুট ফাইলের সংখ্যা নির্দিষ্ট করে
  • java.util.logging.FileHandler.formatter = java.util.logging.XML Formatter -> ফর্ম্যাটের জন্য ব্যবহৃত বিন্যাস উল্লেখ করে। এখানে এক্সএমএল ফর্ম্যাটর ব্যবহার করা হয়।
  • java.util.logging.ConsoleHandler.level = সতর্কতা -> ডিফল্ট লগ স্তর সতর্কতাতে সেট করে
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.Simple Formatter ->নির্দিষ্ট করেবিন্যাসকসব দ্বারা ব্যবহার করাকনসোলহ্যান্ডলার‘এস। এখানে, সিম্পালফর্মেটর ব্যবহার করা হয়।

লগিং ইভেন্টগুলি

ইভেন্ট লগ ইন করতে , আপনাকে নিশ্চিত করতে হবে যে আপনি ইভেন্টগুলি সহজে ফাইল আউট করার জন্য একটি স্তর নির্ধারণ করেছেন। একটি স্তর নির্ধারণ এবং একটি বার্তা উল্লেখ করতে আপনি নীচের পদ্ধতিগুলি ব্যবহার করতে পারেন:

পদ্ধতি 1:

লগার.লগ (স্তর.আইএনএফও, 'বার্তা প্রদর্শন করুন')
এখানে স্তরটি INFO এবং মুদ্রিত হওয়া বার্তাটি হ'ল প্রদর্শন বার্তা ''

পদ্ধতি 2:

logger.info ('বার্তা প্রদর্শন করুন')

জাভাতে লগারটি, আইএনএফও স্তরের বা তার উপরে থাকা ইভেন্টগুলিতে কেবল লগইন করে তা নিশ্চিত করতে আপনি এটি ব্যবহার করতে পারেন সেটভেল () পদ্ধতি উপরে আলোচনা।

এখন, আমি জাভাতে লগার কীভাবে ব্যবহার করব তা নিয়ে আলোচনা করেছি, আসুন আমরা লগ 4 জে আর্কিটেকচারের পরবর্তী উপাদান, অর্থাৎ অ্যাপেন্ডারগুলি নিয়ে আলোচনা করব।

অ্যাপেন্ডার বা হ্যান্ডলার

অ্যাপেন্ডার বা হ্যান্ডলাররা কোনও গন্তব্যে লগ ইভেন্টগুলি রেকর্ড করার জন্য দায়বদ্ধ। প্রতিটি লগারের একাধিক হ্যান্ডলারের অ্যাক্সেস থাকে এবং লগার থেকে লগ বার্তা গ্রহণ করে। তারপরে, সংযোজনকারীরা ইভেন্টগুলি ফর্ম্যাট করতে এবং সংশ্লিষ্ট গন্তব্যে প্রেরণে ফর্ম্যাটর বা লেআউটগুলি ব্যবহার করে।

সেটলিভেল (লেভেল.এফএফ) পদ্ধতিটি ব্যবহার করে কোনও অ্যাপেন্ডার বন্ধ করা যায়। দুটি সবচেয়ে স্ট্যান্ডার্ড হ্যান্ডলারjava.util.loggingপ্যাকেজটি নিম্নরূপ:

  • ফাইলহ্যান্ডলার: লগ বার্তা ফাইল করুন
  • কনসোলহ্যান্ডলার: কনসোলে লগ বার্তাটি লিখেছেন

আপনার আরও ভাল বোঝার জন্য, আমি সম্পত্তি বিভাগে কয়েকটি সংখ্যক অ্যাপেন্ডারকে ব্যাখ্যা করেছি।

বিন্যাস বা বিন্যাসক

বিন্যাসের বিন্যাসটি লগ ইভেন্টে ডেটা ফর্ম্যাট এবং রূপান্তর করতে ব্যবহৃত হয়।লগিং ফ্রেমওয়ার্কগুলি এইচটিএমএল, এক্সএমএল, সিসলগ, জেএসএন, সরল পাঠ্য এবং অন্যান্য লগগুলির জন্য লেআউটগুলি সরবরাহ করে।

  1. সিম্পল ফরম্যাটার : প্রাথমিক তথ্য সহ পাঠ্য বার্তা উত্পন্ন করে।
  2. এক্সএমএল ফর্ম্যাটর : লগের জন্য এক্সএমএল বার্তা উত্পন্ন করে

আপনার আরও ভাল বোঝার জন্য, আমি সম্পত্তি বিভাগে কয়েকটি লেআউট ব্যাখ্যা করেছি।এটির সাহায্যে আমরা 'জাভাতে লগার' এই ব্লগের শেষে এসেছি। আমি আশা করি আপনি এই নিবন্ধে আপনাকে যা শেখানো হয়েছে সে সম্পর্কে আপনি ছেলেরা পরিষ্কার clear

দেখুন এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে যারা জাভা ডেভেলপার হতে চান। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই 'জাভাতে লগার' ব্লগের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।