কাঠামোগত পদ্ধতির সাথে দুটি মৌলিক অগ্রগতি রয়েছে যা অতিরিক্ত প্রচেষ্টা ব্যতীত কখনও কখনও পাঠ্য লগগুলি ব্যবহার করে অনুকরণ করা যায় না।
ইভেন্ট প্রকার
আপনি যখন লগ 4 নেট দিয়ে দুটি ইভেন্ট লিখবেন তখন :
log.Debug("Disk quota {0} exceeded by user {1}", 100, "DTI-Matt");
log.Debug("Disk quota {0} exceeded by user {1}", 150, "nblumhardt");
এগুলি অনুরূপ পাঠ্য উত্পাদন করবে:
Disk quota 100 exceeded by user DTI-Matt
Disk quota 150 exceeded by user nblumhardt
তবে, যতক্ষণ না মেশিন প্রসেসিং সম্পর্কিত, তারা বিভিন্ন পাঠ্যের মাত্র দুটি লাইন।
আপনি সমস্ত "ডিস্কের কোটা অতিক্রম" ইভেন্টগুলি সন্ধান করতে চাইতে পারেন, তবে ইভেন্টগুলি সন্ধানের সরল like 'Disk quota%'
ঘটনাটি অন্য ঘটনা যেমন ঘটবে তত তাড়াতাড়ি নেমে আসবে:
Disk quota 100 set for user DTI-Matt
পাঠ্য লগিং ইভেন্টটির উত্স সম্পর্কে প্রাথমিকভাবে আমাদের কাছে থাকা তথ্যকে ছুঁড়ে দেয় এবং সাধারণত আরও এবং আরও বিস্তৃত ম্যাচের অভিব্যক্তি সহ লগগুলি পড়ার সময় এটি পুনর্গঠন করতে হয়।
বিপরীতে, যখন আপনি নিম্নলিখিত দুটি সিরিলোগ ইভেন্ট লিখবেন :
log.Debug("Disk quota {Quota} exceeded by user {Username}", 100, "DTI-Matt");
log.Debug("Disk quota {Quota} exceeded by user {Username}", 150, "nblumhardt");
এগুলি লগ 4 নেট সংস্করণে অনুরূপ পাঠ্য আউটপুট তৈরি করে, তবে পর্দার পিছনে "Disk quota {Quota} exceeded by user {Username}"
বার্তা টেমপ্লেট উভয় ইভেন্টই বহন করে।
একটি যথাযথ বেসিনে সঙ্গে, আপনি পরে প্রশ্নের লিখতে পারেন where MessageTemplate = 'Disk quota {Quota} exceeded by user {Username}'
এবং পেতে ঠিক ঘটনা যেখানে ডিস্ক কোটা অতিক্রম করেছিল।
এটি প্রতি লগ ইভেন্টের সাথে সমগ্র বার্তাটি টেমপ্লেট সংরক্ষণ করতে সুবিধাজনক সব সময় নয়, তাই কিছু কুন্ড একটি সাংখ্যিক মধ্যে বার্তা টেমপ্লেট হ্যাশ EventType
মান (যেমন 0x1234abcd
), অথবা, আপনি লগিং পাইপলাইন একটি enricher যোগ করতে পারেন নিজেকে এই কাজ ।
এটি নীচের পরবর্তী পার্থক্যের চেয়ে আরও সূক্ষ্ম, তবে বড় লগ ভলিউমের সাথে লেনদেন করার সময় একটি বিশাল শক্তিশালী।
কাঠামোগত ডেটা
আবার ডিস্ক স্পেস ব্যবহার সম্পর্কে দুটি ইভেন্ট বিবেচনা করে, কোনও নির্দিষ্ট ব্যবহারকারীর সাথে জিজ্ঞাসা করার জন্য পাঠ্য লগগুলি ব্যবহার করা যথেষ্ট সহজ হতে পারে like 'Disk quota' and like 'DTI-Matt'
।
তবে, উত্পাদন ডায়াগনস্টিকস সবসময় এত সোজা থাকে না। কল্পনা করুন যে ডিস্কের কোটা ছাড়িয়ে গেছে এমন ইভেন্টগুলি 125 এমবি এর নীচে রয়েছে?
সেরিলোগের সাহায্যে, এটি বেশিরভাগ সিঙ্কে এর বৈকল্পিক ব্যবহার করে এটি সম্ভব:
Quota < 125
একটি নিয়মিত প্রকাশ থেকে এই ধরণের কোয়েরি তৈরি করা সম্ভব তবে এটি ক্লান্তিকর হয়ে ওঠে এবং সাধারণত শেষ অবলম্বনের পরিমাপ হয়ে শেষ হয়।
এখন এটি একটি ইভেন্ট টাইপ যোগ করুন:
Quota < 125 and EventType = 0x1234abcd
আপনি এখানে দেখতে শুরু করেন যে লগগুলি দিয়ে উত্পাদন ডিবাগ করার জন্য এই ক্ষমতাগুলি কীভাবে সোজা উপায়ে একত্রিত হয় প্রথম শ্রেণির উন্নয়ন ক্রিয়াকলাপের মতো মনে হয়।
আরও একটি সুবিধা, সম্ভবত সামনের দিকে রোধ করা ততটা সহজ নয়, তবে একবার রেগেক্স হ্যাকারির জমি থেকে প্রোডাকশন ডিবাগিং সরিয়ে নেওয়া হলে, বিকাশকারীরা লগগুলিকে অনেক বেশি মূল্য দিতে শুরু করে এবং সেগুলি লেখার সময় আরও যত্ন এবং বিবেচনা করে অনুশীলন করে। আরও ভাল লগ -> আরও ভাল মানের অ্যাপ্লিকেশন -> চারদিকে আরও বেশি সুখ।