জাভা লগিং ফ্রেমওয়ার্কগুলিতে চিহ্নিতকারীগুলি কী এবং সেগুলি ব্যবহার করার কারণ কী?


110

আমি যখন প্রথমবার পড়ি তখন চিহ্নিতকারীদের সম্পর্কে শুনি:

http://slf4j.org/faq.html

আমি লগার অবজেক্টের জন্য উপলভ্য পদ্ধতিগুলি পরীক্ষা করি :

এবং পাওয়া ইন্টারফেস:

আমি থেকে আরও গভীরতর তথ্য পাই:

তবে তবুও বিভ্রান্ত ... নোট করুন যে আমি জিজ্ঞাসা করেছি কেন , কীভাবে সেগুলি ব্যবহার করবেন না, সুতরাং এটির সদৃশ নয়:

আপডেট বলে মনে হয় আপনি যখন মার্কার ব্যবহার করেন তখন আপনাকে XML বা .property এ কনফিগারেশন করার পরিবর্তে কাস্টম জাভা কোডও লিখতে হবে required ফাইলে ...

Http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator থেকে 2 আপডেট করুন

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin's attention",
   new Exception("Just testing"));

চিহ্নিতকারী ব্যবহার করতে আপনাকে এসএলএফ 4 জে সরবরাহকারী মার্কার এপিআই ব্যবহার করতে হবে। আপনি কি "কাস্টম জাভা কোড" বলতে চাইছেন?
Ceci

@ সেকি দেখে মনে হচ্ছে যে কেবলমাত্র লগার.ওয়ার্ন (চিহ্নিতকারী, চিহ্ন) ব্যবহার করে আপনি কোনও সুবিধা দিতে পারেন না যতক্ষণ না আপনি ফিল্টারগুলির জন্য কাস্টম ক্লাস লিখে এবং সেগুলি নিবন্ধভুক্ত করেন ... লগব্যাক.এক্সএমএল এর সাধারণ সিনট্যাক্সের সাথে মার্কারের সাথে কাজ করার কোনও বিশেষ ক্ষমতা নেই (কেবলমাত্র এগুলিকে % চিহ্নিত করে মুদ্রণ করুন )
গ্যাভেনকোয়ায়

1
Logback.qos.ch/manual/appenders.html#OnMarkerEvaluator এ যা উপস্থাপন করা হয়েছে তাতে "বিশেষ" কী খুঁজে পাবে ?
Ceki

@ সেকি পয়েন্টের জন্য ধন্যবাদ! এটি কি কেবলমাত্র এক জায়গা যেখানে মার্কার ব্যবহার করা যেতে পারে?
গ্যাভেনকোয়া

1
@ সেকি এখন যেহেতু আমরা ইলাস্টিকসারচ ব্যবহার করছি এটিই বিশেষ ইভেন্টগুলি চিহ্নিত করার উপায়। আমরা পুনরায় ব্যবহারের জন্য একটি ডেডিকেটেড শ্রেণিতে পূর্বনির্ধারিত চিহ্নিতকারীদের রাখি। আপনি কেবল grepপাঠ্য লগগুলি ব্যবহার করার সময় এটি স্পষ্ট ছিল না ।
gavenkoa

উত্তর:


117

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

চিহ্নিতকারীগুলি একটি একক লগ স্টেটমেন্ট রঙ করতে বা চিহ্নিত করতে ব্যবহৃত হতে পারে । আপনি এই রঙগুলি, অর্থাত্ চিহ্নিতকারীগুলি দিয়ে যা করেন তা সম্পূর্ণরূপে আপনার। যাইহোক, দুটি নিদর্শনগুলি চিহ্নিতকারী ব্যবহারের জন্য সাধারণ বলে মনে হয়।

  1. ট্রিগারিং : কিছু appender একটি নির্দিষ্ট মার্কার উপস্থিতিতে একটি পদক্ষেপ নিতে নির্দেশ যেতে পারে। উদাহরণস্বরূপ, লগ স্তরটি নির্বিশেষে চিহ্নিতকারীটির SMTPAppenderসাথে যখন কোনও লগিং ইভেন্ট চিহ্নিত করা হয় তখন কোনও ইমেল প্রেরণে কনফিগার করা যেতে পারে NOTIFY_ADMIN। লগব্যাক ডকুমেন্টেশনে চিহ্নিতকারী ভিত্তিক ট্রিগার দেখুন । আপনি ট্রিগার জন্য লগ স্তর এবং চিহ্নিতকারী একত্রিত করতে পারেন।

  2. ফিল্টারিং : নির্দিষ্ট মূল্যবান লগ স্টেটমেন্টগুলি আলাদা করে রাখতে মার্কাররা খুব কার্যকর useful উদাহরণস্বরূপ, আপনি "ডিবি" রঙের সাথে আপনার সমস্ত অধ্যবসায় সম্পর্কিত লগগুলিকে (বিভিন্ন এবং একাধিক শ্রেণীর ফাইলগুলিতে) রঙ করতে / চিহ্নিত করতে পারেন। তারপরে আপনি "ডিবি" এর জন্য ফিল্টার করতে পারবেন: ডিবি দিয়ে চিহ্নিত লগের বিবৃতি ব্যতীত লগিং অক্ষম করুন। আরও তথ্যের জন্য লগব্যাক ডকুমেন্টেশনে ফিল্টারগুলির অধ্যায়টি দেখুন (মার্কার ফিল্টার অনুসন্ধান করুন)। নোট করুন যে চিহ্নিতকারীগুলিতে ফিল্টারিং কেবল লগব্যাকের মাধ্যমে নয় বরং লগ বিশ্লেষণ সরঞ্জামগুলি দ্বারাও করা যেতে পারে।

চিহ্নিতকারীদের আবির্ভাবের আগে, একই আচরণ অর্জনের জন্য, আপনার বিকল্প ছিল 1) কাস্টম স্তরগুলি ব্যবহার করে 2) পরিবর্তিত লগার নাম ব্যবহার করুন। SLF4J API বর্তমানে কাস্টম স্তরগুলিকে সমর্থন করে না। বিকল্প 2 হিসাবে, এক বা দুটি লগার সংশোধন করা দরকার হলে লগার নাম প্রত্যয় (বা উপসর্গ) কার্যকরযোগ্য is 3 বা ততোধিক লগারকে "উপ-শ্রেণিবদ্ধ" হওয়া দরকার কারণ সম্পর্কিত কনফিগারেশন ফাইলগুলি নিয়ন্ত্রণহীন হয়ে যায় এ পদ্ধতিটি অচল হয়ে পড়ে।

যদিও একটি একক চিহ্নিতকারী ইতিমধ্যে খুব দরকারী হতে পারে, এসএলএফ 4 জ এর পরবর্তী সংস্করণ, অর্থাৎ সংস্করণ 2.0, প্রতি লগ বিবৃতিতে একাধিক চিহ্নিতকারীকে অনুমতি দেবে।


1
এছাড়াও ব্যবহার করা যাবে SiftingAppender discrimnator জন্য stackoverflow.com/a/30552012/1012497
নিকলী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.