सबसे पहले, मैं सभी अप्राप्य अपवादों के लिए रन टाइम अपवाद फेंक रहा हूं, इससे इन अपवादों को कंटेनर तक यात्रा करने का कारण बनता है, जहां मैं वर्तमान में एक त्रुटि पृष्ठ (web.xml में परिभाषित) का उपयोग करता हूं। इस त्रुटि पृष्ठ में एक स्क्रिप्टलेट है जो लॉगर को आमंत्रित करता है।जावा ईई वेब ऐप्स में हर अपवाद को पकड़ना
मेरे साथ यह मुद्दा यह है कि इस आमंत्रण पर अपवाद अब ढेर पर नहीं है। मेरे पास अनुरोध स्कोप चर ("javax.servlet.error.message") से इसकी पहुंच है। यह स्ट्रिंग स्टैक ट्रेस है। मुझे लॉगिंग उद्देश्यों के लिए स्पष्ट रूप से लॉग इन करने के लिए इस स्टैक ट्रेस की आवश्यकता है, और अलग-अलग ऐप सर्वरों पर "javax.error_message" को सुरक्षा कारणों से बंद कर दिया जा सकता है .......
तो मेरा सवाल यह है कि, रनटाइम अपवादों को सर्वोत्तम तरीके से कैसे लॉग किया जा सकता है जावा ईई ऐप्स के भीतर इसमें सबकुछ लपेटे बिना:
try {} catch (Exception e) {logger.log(...)}
?
मैं कंटेनर से लॉगर को आक्रमण करने का कोई तरीका चाहता हूं ... कंटेनर उदाहरण के लिए अपवाद को पकड़ने से ठीक पहले।
आप किस ढांचे का उपयोग कर रहे हैं? Struts? वसंत? –
यह ढांचा ढांचा होगा। हम नहीं चाहते हैं कि यह विशेष रूप से किसी भी चीज़ से जुड़ा हो (ऐप सर्वर या फ्रेमवर्क)। हम वास्तव में 3 ढांचे का समर्थन कर रहे हैं। ये सादा j2ee/struts/JSF हैं (विशेष रूप से ओरेकल के जेएसएफ के अनुकूलन: एडीएफ चेहरे)। पिछली छोर के लिए, पीएल/एसक्यूएल संग्रहीत प्रक्रियाओं या सिर्फ एसक्यूएल/जेडीबीसी ... एडीएफ चेहरे के लिए, यह एडीएफ बिजनेस घटकों का उपयोग करता है ... जो टॉपलिंक के समान है। – Zombies