मैंने @ टेर्डन के समान विधियों का उपयोग किया है। यह उच्चतर स्तर की प्रोग्रामिंग लैंग्वेज को लॉगर कहते हैं, और पूर्ण विकसित लाइब्रेरियों जैसे कि log4J (जावा), log4Perl (पर्ल) आदि की शुरुआत है।
set -x
जैसा कि आपने उल्लेख किया है, आप बैश में भी ऐसा ही कुछ प्राप्त कर सकते हैं, लेकिन आप इसका उपयोग कोडिंग ब्लॉक को कमांड के एक सबसेट को डिबगिंग को चालू करने के लिए कर सकते हैं ताकि उनके साथ कोड को ब्लॉक किया जा सके।
$ set -x; cmd1; cmd2; set +x
उदाहरण
यहां एक लाइनर पैटर्न है जिसका आप उपयोग कर सकते हैं।
$ set -x; echo "hi" ;set +x
+ echo hi
hi
+ set +x
आप एक स्क्रिप्ट में कई कमांड्स के लिए उन्हें इस तरह लपेट सकते हैं।
set -x
cmd1
cmd2
set +x
cmd3
Log4Bash
ज्यादातर लोग बेखबर होते हैं लेकिन बैश के पास भी एक Log4 * होता है, Log4Bash । यदि आपके पास अधिक मामूली जरूरत है तो इसे स्थापित करने के लिए समय की कीमत हो सकती है।
log4bash बैश स्क्रिप्ट के लिए बेहतर लॉगिंग करने का प्रयास है (यानी बैश चूसना में लॉगिंग कम करें)।
उदाहरण
यहाँ log4bash का उपयोग करने के कुछ उदाहरण दिए गए हैं।
#!/usr/bin/env bash
source log4bash.sh
log "This is regular log message... log and log_info do the same thing";
log_warning "Luke ... you turned off your targeting computer";
log_info "I have you now!";
log_success "You're all clear kid, now let's blow this thing and go home.";
log_error "One thing's for sure, we're all gonna be a lot thinner.";
# If you have figlet installed -- you'll see some big letters on the screen!
log_captains "What was in the captain's toilet?";
# If you have the "say" command (e.g. on a Mac)
log_speak "Resistance is futile";
Log4sh
यदि आप चाहते हैं कि मैं एक log4 * फ्रेमवर्क की पूरी शक्ति के रूप में क्या वर्गीकृत करूँगा तो मैं Log4sh को आज़माऊंगा ।
अंश
log4sh मूल रूप से एक लॉगिंग समस्या को हल करने के लिए विकसित किया गया था, जिसमें मैंने कुछ ऐसे उत्पादन परिवेशों में काम किया था, जहां मैंने काम किया है या तो मेरे पास बहुत अधिक लॉगिंग थी, या पर्याप्त नहीं थी। विशेष रूप से क्रोन नौकरियों ने मुझे अपने निरंतर और कष्टप्रद ईमेल के साथ सबसे अधिक सिरदर्द दिया, जो मुझे बताता है कि सब कुछ काम किया है, या यह कि कुछ भी काम नहीं किया है, लेकिन एक विस्तृत कारण क्यों नहीं। मैं अब वातावरण में log4sh का उपयोग करता हूं, जहां शेल स्क्रिप्ट से लॉगिंग महत्वपूर्ण है, लेकिन जहां मुझे एक साधारण "हैलो, मुझे ठीक करें" से अधिक की आवश्यकता है! लॉगिंग संदेश का प्रकार। यदि आपको वह दिखाई देता है जो आप देखते हैं, या सुधार के बारे में कोई सुझाव है, तो कृपया मुझे ईमेल छोड़ने के लिए स्वतंत्र महसूस करें। यदि परियोजना में पर्याप्त रुचि है, तो मैं इसे और विकसित करूंगा।
log4sh को लिनक्स पर बॉर्न अगेन शेल (/ बिन / बैश) के तहत विकसित किया गया है, लेकिन यह सुनिश्चित करने के लिए बहुत ध्यान रखा गया है कि यह सोलारिस के डिफ़ॉल्ट बॉर्न शेल (/ बिन / श) के तहत काम करता है क्योंकि यह प्राथमिक उत्पादन होता है मंच अपने आप से इस्तेमाल किया।
Log4sh कई गोले का समर्थन करता है, न कि सिर्फ बैश।
- बॉर्न शेल (sh)
- बैश - जीएनयू बॉर्न अगेन SHell (bash)
- DASH (डैश)
- कोर्न शेल (ksh)
- pdksh - सार्वजनिक डोमेन Korn Shell (pdksh)
यह सिर्फ लिनक्स ही नहीं, बल्कि कई ओएस पर भी टेस्ट किया गया है।
- साइगविन (विंडोज के तहत)
- FreeBSD (उपयोगकर्ता समर्थित)
- लिनक्स (जेंटू, रेडहैट, उबंटू)
- मैक ओएस एक्स
- सोलारिस 8, 9, 10
लॉग 4 * फ्रेमवर्क का उपयोग करने के लिए सीखने में कुछ समय लगेगा लेकिन अगर आप अपने लॉगिंग से अधिक मांग की आवश्यकता रखते हैं तो यह इसके लायक है। Log4sh एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है जहां आप ऐपेंडर्स को परिभाषित कर सकते हैं और दिखाई देने वाले आउटपुट के लिए स्वरूपण को नियंत्रित कर सकते हैं।
उदाहरण
#! /bin/sh
#
# log4sh example: Hello, world
#
# load log4sh (disabling properties file warning) and clear the default
# configuration
LOG4SH_CONFIGURATION='none' . ./log4sh
log4sh_resetConfiguration
# set the global logging level to INFO
logger_setLevel INFO
# add and configure a FileAppender that outputs to STDERR, and activate the
# configuration
logger_addAppender stderr
appender_setType stderr FileAppender
appender_file_setFile stderr STDERR
appender_activateOptions stderr
# say Hello to the world
logger_info 'Hello, world'
अब जब मैं इसे चलाता हूं:
$ ./log4sh.bash
INFO - Hello, world
नोट: उपरोक्त कोड के भाग के रूप में परिशिष्ट को कॉन्फ़िगर करता है। यदि आप इसे पसंद करते हैं तो इसे अपनी फ़ाइल log4sh.properties
आदि में निकाला जा सकता है ।
यदि आपको अधिक जानकारी की आवश्यकता है, तो Log4sh के लिए उत्कृष्ट प्रलेखन से परामर्श करें ।
set -v
हैं कि आपको आउटपुट के कौन से हिस्से चाहिए और कौन से नहीं।