2010-12-16 15 views
25

मेरे पास एक बैच फ़ाइल है जो जावा प्रोग्राम को कॉल करती है।बैच फ़ाइल का आउटपुट आउटपुट फ़ाइल लॉग इन करने के लिए

आउटपुट उसी निर्देशिका में लॉग फ़ाइल पर रीडायरेक्ट किया गया है। हालांकि लॉग फ़ाइल बदल दिया जाता है हर बैच फ़ाइल चलाया जाता है ...

मैं लॉग फ़ाइल में पुराने आउटपुट रखने के लिए और हमेशा लॉग फ़ाइल के लिए नए उत्पादन संलग्न करने के लिए करना चाहते हैं।

+1

आप आउटपुट ALSO को कंसोल के साथ-साथ लॉग फ़ाइल को रीडायरेक्ट कैसे करते हैं? – djangofan

उत्तर

70

उपयोग करने के बजाय ">" इस तरह रीडायरेक्ट करने के लिए:

java Foo > log 

उपयोग ">>" किसी नए या मौजूदा फ़ाइल के लिए सामान्य "stdout" आउटपुट संलग्न करने के लिए:

java Foo >> log 

हालांकि, यदि आप "stderr" त्रुटियों को कैप्चर करना चाहते हैं (जैसे कि जावा प्रोग्राम क्यों शुरू नहीं किया जा सका), तो आपको "2> & 1" टैग का भी उपयोग करना चाहिए जो "stderr" ("2") को "stdout" पर रीडायरेक्ट करता है "(" 1 ")। उदाहरण के लिए:

java Foo >> log 2>&1 
+0

धन्यवाद, ">>" काम किया ..... क्या आप कृपया मुझे बता सकते हैं कि मुझे अपनी बैच फ़ाइल में कौन सी लाइनें जोड़नी चाहिए यह टिमस्टैम्प के साथ हर 30 मिनट ..... के बाद इसे निष्पादित करेगा! –

+0

@Monojeet: आपको शायद अपनी बैच फ़ाइल में ऐसा नहीं करना चाहिए - इसके बजाय, कार्य शेड्यूलर का उपयोग करें। –

+0

दरअसल यह बात कई सर्वरों पर तैनात की जा रही है, इसलिए प्रत्येक सर्वर पर कार्य शेड्यूलर को कॉन्फ़िगर करना संभव नहीं है, एक स्क्रिप्ट आसान होगी! –

4

यह अपने मूल प्रश्न का उत्तर नहीं है: "जोड़ना एक बैच फ़ाइल के आउटपुट फ़ाइल लॉग इन करने के"

संदर्भ के लिए, यह अपना फ़ॉलो प्रश्न का उत्तर है: "क्या लाइनों मैं जो इसे हर 30mins के बाद निष्पादित कर देगा मेरे बैच फ़ाइल में जोड़ने के लिए करना चाहिए?"

(लेकिन मैं जॉन स्कीट की सलाह ले जाएगा: "। संभवतः आप ऐसा नहीं करना चाहिए अपने बैच फ़ाइल में - इसके बजाय, कार्य शेड्यूलर का उपयोग")

समय समाप्त:

उदाहरण (1 सेकंड):

012,351,

TIMEOUT /T 1000 /NOBREAK

नींद:

उदाहरण (1 सेकंड):

sleep -m 1000

वैकल्पिक तरीकों:

समय-चिह्न के साथ-साथ ":

यहाँ अपने 2 फॉलोअप प्रश्न का उत्तर है?"

Create a date and time stamp in your batch files

उदाहरण:। अपने जावा कार्यक्रम में

echo *** Date: %DATE:/=-% and Time:%TIME::=-% *** >> output.log

1

उपयोग log4j बजाय तो फिर तुम कर सकते हैं कई मीडिया के लिए उत्पादन, रोलिंग लॉग, आदि बना सकते हैं और टाइम स्टांप, वर्ग नाम शामिल हो लाइन नंबर

संबंधित मुद्दे