2010-07-29 5 views
6

यदि प्रोग्राम अचानक या किसी अपवाद के साथ बाहर निकला है तो मुझे एक लॉग रिकॉर्ड करने की आवश्यकता है। उदाहरण के लिए, जब कोई प्रोग्राम चलाते समय Ctrl+C दबाता है, तो मुझे लॉग इन करने की आवश्यकता होती है कि यह अचानक से निकल जाए। मैं यह कैसे कर सकता हूँ?क्या जावा प्रोग्राम अचानक समाप्त होने पर कुछ करना संभव है?

उत्तर

9

आप इस के लिए shutdown hook का प्रयास और उपयोग कर सकते हैं। प्रलेखन से, हुक निम्न परिस्थितियों में मार डाला जाएगा:

  • कार्यक्रम सामान्य रूप से बाहर निकालता है
  • वीएम

यह आपके ^C स्थिति को शामिल किया गया समाप्त हो जाता है, लेकिन doubtfully तरह की स्थितियों को कवर किया जाएगा मशीन अनप्लग्ड (मशीन पर किसी प्रकार के अनावश्यक हार्डवेयर को छोड़कर)।

Here डिज़ाइन के बारे में कुछ नोट्स हैं।

क्रूड उदाहरण:

Runtime.getRuntime().addShutdownHook(new Thread() { 
    @Override 
    public void run() { 
     System.out.println("System was shutdown"); 
    } 
}); 
+0

मुझे लगता है कि उस पर CTRL + C चलेंगे और 'SIGTERM' लेकिन मुझे लगता है कि कार्यक्रम है जहाँ यह अभ्यस्त –

+2

मैंने देखा है कि एम्बेडेड सिस्टम सका चलाने को मारने के लिए अन्य तरीके हैं वास्तव में एक बिजली नुकसान घटना लॉग इन करें। एक बहुत बड़ा संधारित्र और एक बहुत ही छोटी इंटरप्ट सेवा दिनचर्या की आवश्यकता है, लेकिन यह किया जा सकता है। –

+2

एक और विकल्प सफल शटडाउन लॉग करना है और स्टार्टअप पर जांच करना है कि कार्यक्रम का अंतिम भाग सफलतापूर्वक बंद कर दिया गया था। –

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

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