2011-06-01 6 views
15

मैं विशेष रूप से सबसे अद्यतित, आधुनिक SysLogHandlerjava.util.logging के लिए देख रहा हूं।java.util.logging हैंडलर का उपयोग कर syslog पर लॉग इन करने का सबसे आधुनिक तरीका क्या है?

मुझे कुछ ऐसी तारीखें मिलीं जो 2001- 2003 तक थीं, जो अब अधिकतर समर्थित नहीं हैं।

मुझे पता है कि syslog एक सुंदर स्थैतिक सेवा है, मैं कुछ लिखने से पहले सोच रहा हूं, अगर जावा 1.5 और नई सुविधाओं का समर्थन करने वाले नए हैंडलर कार्यान्वयन हैं।

मैं किसी अन्य लॉगिंग फ्रेमवर्क या रैपर/प्रॉक्सी पुस्तकालयों में रुचि रखने वाले नहीं हूं।

मैं एसएलएफ 4 जे या किसी अन्य वैकल्पिक लॉगिंग फ्रेमवर्क की तलाश में नहीं हूं, जैसा कि question में सुझाया गया है।

+0

आप इसे करने के लिए कुछ कोड लिख सकते हैं। या एक पुस्तकालय का उपयोग करें जो पहले से ही कर सकता है। चूंकि जावा बॉक्स से बाहर नहीं कर सकता है। –

+0

मुझे पता है कि आप SLF4J की तलाश नहीं कर रहे हैं, लेकिन मैं अभी भी दिल से इसकी अनुशंसा करता हूं भले ही आप नीचे उपयोग-लॉगिंग का उपयोग करेंगे। – Darien

+0

इसे स्वयं लिखें, शायद यहां चर्चा से कम समय होगा। मुझे पता है, अगर मुझे एक हैंडलर की ज़रूरत है तो मैं इसे खुद लिखता हूं। जावा 5 में java.util.logging व्यावहारिक रूप से अपरिवर्तित था, 6_18 में उन्होंने लॉगर्स के लिए कुछ कमजोर संदर्भ दिया। – bestsss

उत्तर

9

मैं एक ही समस्या से मुलाकात की - साथ http://code.google.com/p/agafua-syslog/ - मैं के लिए java.util.logging.Handler

एक Syslog विस्तार वर्ग की जरूरत किया गया था किसी भी सफलता के बिना इंटरनेट में खोज के बाद, मैं अपने खुद के कार्यान्वयन बना दी यूडीपी और टीसीपी प्रोटोकॉल का समर्थन। मैं इसे उत्पादन परियोजना में उपयोग करता हूं।

+0

टोमकैट के साथ उपयोग के लिए इसे '$ CATALINA_HOME/अनुमोदित 'में स्थापित किया जाना चाहिए। –

+2

http://rusv.github.io/agafua- पर माइग्रेट किए गए Google Code प्रोजेक्ट के बहिष्करण के कारण syslog / – geert3

2

एक पुरानी नौकरी में, मैंने Syslog4j लाइब्रेरी का उपयोग किया और इसके लिए एक कस्टम लॉग 4j-appender तार दिया, ताकि आप शायद कस्टम java.util.logging.Handler को लागू करके कुछ ऐसा कर सकें जो संदेशों को पास करता है।

+0

syslog4j लिंक टूटा हुआ प्रतीत होता है :-( – Leo

2

साइज़लॉग (कम से कम लिनक्स पर) इनपुट के लिए यूडीपी पोर्ट (डिफ़ॉल्ट रूप से 514/udp) पर सुनता है।

तो हैंडलर लागू करें जो इस पोर्ट को स्वरूपित संदेश भेजता है। मैंने संदर्भ के लिए मौजूदा सॉकेटहैंडलर का उपयोग किया, और डेटाग्राम सॉकेट के आसपास एक परिवर्तन लागू किया। मेरा लगभग 200 लाइनों में आया था।