Fish Shell:
লগিং
কিভাবে:
ফিশে, লগিং মানক আউটপুট এবং ত্রুটি স্ট্রিমগুলি একটি ফাইলে পুনঃনির্দেশ করার মাধ্যমে সহজ হতে পারে। চলুন আমাদের স্ক্রিপ্টের শুরু এবং শেষের জন্য একটি লগ এন্ট্রি তৈরি করি।
function log_start
echo (date "+%Y-%m-%d %H:%M:%S") " - স্ক্রিপ্ট শুরু হয়েছে" >> my_app.log
end
function log_end
echo (date "+%Y-%m-%d %H:%M:%S") " - স্ক্রিপ্ট শেষ হয়েছে" >> my_app.log
end
log_start
# ... আপনার স্ক্রিপ্টের টাস্কগুলি ...
log_end
cat my_app.log
my_app.log
-এ আপনার যা দেখতে পারবেন:
2023-04-01 10:35:47 - স্ক্রিপ্ট শুরু হয়েছে
2023-04-01 10:36:02 - স্ক্রিপ্ট শেষ হয়েছে
উন্নত লগিং-এর জন্য, আপনি লগ লেভেল এবং বার্তাগুলি সম্পর্কে প্যারামিটারগুলি সহ ফাংশন ব্যবহার করতে পারেন:
function log_message --argument message
switch "$argv[1]"
case 'INFO' 'WARN' 'ERROR'
set log_level $argv[1]
case '*'
set log_level 'DEBUG'
end
set log_msg (string join " " $argv[2..-1])
echo (date "+%Y-%m-%d %H:%M:%S") "[$log_level]" $log_msg >> my_app.log
end
log_message INFO "এটি একটি তথ্য সামগ্রী বার্তা।"
log_message ERROR "কিছু ভুল হয়েছে!"
my_app.log
সাম্প্রতিক আউটপুট হবে:
2023-04-01 10:35:47 [INFO] এটি একটি তথ্য সামগ্রী বার্তা।
2023-04-01 10:35:49 [ERROR] কিছু ভুল হয়েছে!
গভীর ডুব
ঐতিহাসিকভাবে, খোলস স্ক্রিপ্টগুলিতে লগিং এক গুচ্ছ echo
স্টেটমেন্টের মাধ্যমে করা হত, এবং যদিও এটি নিশ্চিতভাবে এখনও একটি বিকল্প, আরও জটিল সিস্টেমগুলি বাস্তবায়ন করা একটি চ্যালেঞ্জ হতে পারে। ফিশের মতো কিছু অন্যান্য খোলস বা প্রোগ্রামিং ভাষাগুলিতে যেমন একটি নির্মিত লগিং মেকানিজম থাকে না, তাই অনেক সময় আপনাকে নিজের একটি তৈরির দরকার হয়।
ফিশের নির্মিত echo
কমান্ডের বিকল্প হিসেবে লগিং-এর জন্য syslog
বা logger
মতো ইউনিক্স টুলগুলি রয়েছে, যা সিস্টেম লগ ডেমনের সাথে ইন্টারফেস করে, সিস্টেমজুড়ে ইভেন্টগুলিকে লগিং করার একটি আরও সমন্বিত পদ্ধতি প্রদান করে।
ফিশের সরলতা আপনাকে লগিং-এর বাচনবৈধতা সামলানোর জন্য ফাংশন তৈরি করতে সক্ষম করে, ভিন্ন লেভেল সেট করে, যা আপনি চালু বা বন্ধ করতে পারেন। কিছু বাস্তবায়ন এমনকি স্ক্রিপ্টের নাম, লাইন নম্বর, এবং টাইমস্ট্যাম্প অন্তর্ভুক্ত করতে পারে, যা একটি ইভেন্টের নেতৃত্বে পদক্ষেপগুলি অনুসরণ করা সহজ করে তোলে।
আরও দেখুন
- ফাংশন লেখার উপর ফিশ শেল ডকুমেন্টেশন: https://fishshell.com/docs/current/#syntax-function
- বেসিক শেল স্ক্রিপ্টিং টিপস: https://developer.ibm.com/tutorials/l-lpic1-103-4/
- সিসলগ প্রোটোকলের গাইড: https://tools.ietf.org/html/rfc5424