আমার একটি অ্যাপ্লিকেশন রয়েছে যা অবশ্যই প্রতিটি লেনদেন লগ করতে পারে। প্রতিটি লগ বার্তা ফ্লাশ করা হয় কারণ ক্র্যাশ পর্যন্ত কী ঘটেছিল তার একটি রেকর্ড থাকা আমাদের দরকার। লগ মেসেজটি প্রক্রিয়াটি ছেড়ে দিয়েছে এই গ্যারান্টি দেওয়ার সাথে সাথে আমি এবং আমার সহকর্মীরা বাফারিংয়ের কার্যকারিতা প্রভাবগুলি কীভাবে অর্জন করবেন সে সম্পর্কে আগ্রহী ছিল।
আমরা যা নিয়ে এসেছি তা হ'ল:
- অ্যাপ্লিকেশনটিতে লিখতে পারে এমন একটি ফিফো তৈরি করুন এবং
- এর মাধ্যমে নিয়মিত ফাইলে সেই ফিফোর বিষয়বস্তু পুনর্নির্দেশ করুন
cat
।
তা হ'ল সাধারনত যা ছিল:
app --logfile logfile.txt
এখন:
mkfifo logfifo
cat logfifo &> logfile.txt &
app --logfile logfifo
এই পদ্ধতির কোনও গোঁছা আছে? এটি পরীক্ষা করার সময় এটি কার্যকর হয়েছিল, তবে আমরা পুরোপুরি নিশ্চিত করতে চাই যে বার্তাগুলি মূল অ্যাপ্লিকেশন ক্র্যাশ হয়ে গেলেও পুনর্নির্দেশ করা ফাইলটিতে তাদের পথ খুঁজে পাবে।
(আমাদের কাছে অ্যাপ্লিকেশনটির সোর্স কোড নেই, সুতরাং প্রোগ্রামিং সমাধানগুলি প্রশ্নের বাইরে রয়েছে Also এছাড়াও, অ্যাপ্লিকেশনটি লিখবে না stdout
, সুতরাং সরাসরি আলাদা কমান্ডে পাইপিং করা প্রশ্নের বাইরে syslog
নয় । তাই কোনও সম্ভাবনা নেই ।)
আপডেট: আমি একটি অনুগ্রহ যুক্ত করেছি। গৃহীত উত্তর দেব না জড়িত করা logger
সহজ কারণ যে জন্য logger
হয় না আমি কি জানতে চাইলে গেছেন। আসল প্রশ্ন অনুসারে, আমি কেবল একটি ফিফো ব্যবহারের ক্ষেত্রে গোটচাস খুঁজছি।