Fish Shell:
लॉगिंग
कैसे करें:
Fish में, लॉगिंग सिर्फ स्टैंडर्ड आउटपुट और एरर स्ट्रीम्स को एक फाइल में रीडायरेक्ट करना जितना सरल हो सकता है। आइए हमारी स्क्रिप्ट के शुरुआत और अंत के टाइम्स के लिए एक लॉग प्रविष्टि बनाते हैं।
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
स्टेटमेंट्स के ढेरों के साथ की जाती थी, और जबकि यह अभी भी एक विकल्प है, अधिक जटिल सिस्टम्स को लागू करना एक चुनौती हो सकती है। Fish में कुछ अन्य शेल्स या प्रोग्रामिंग भाषाओं की तरह निर्मित लॉगिंग तंत्र नहीं होता है, इसलिए आपको अक्सर अपनी स्वयं की व्यवस्था बनानी पड़ती है।
लॉगिंग के लिए Fish के निर्मित echo
कमांड के विकल्पों में Unix टूल्स जैसे कि syslog
या logger
शामिल हैं, जो सिस्टम लॉग डेमन के साथ इंटरफेस करते हैं, पूरे सिस्टम में लॉगिंग घटनाओं के लिए एक अधिक एकीकृत दृष्टिकोण प्रदान करते हैं।
Fish की सरलता आपको लॉगिंग की शब्दमाला को संभालने के लिए फंक्शन्स बनाने की अनुमति देती है, विभिन्न स्तरों को सेट करती है जिन्हें आप चालू या बंद कर सकते हैं। कुछ कार्यान्वयनों में स्क्रिप्ट का नाम, लाइन नंबर, और टाइमस्टैम्प भी शामिल किया जा सकता है, जो उन चरणों को वापस ट्रेस करना आसान बना देता है जिनसे कोई घटना हुई हो।
इसे भी देखें
- फंक्शन्स लिखने पर Fish शेल दस्तावेजीकरण: https://fishshell.com/docs/current/#syntax-function
- बेसिक शेल स्क्रिप्टिंग टिप्स: https://developer.ibm.com/tutorials/l-lpic1-103-4/
- Syslog प्रोटोकॉल के लिए गाइड: https://tools.ietf.org/html/rfc5424