2010-02-12 12 views
5

क्या एकाधिक appenders एक ही लेआउट साझा करने के लिए log4j.xml फ़ाइल को कॉन्फ़िगर करने का कोई तरीका है? मैंने प्रत्येक परिशिष्ट में लेआउट पैरामीटर की प्रतिलिपि बनाई है लेकिन पैटर्न में बदलाव होने पर इसे कई स्थानों में अपडेट करने के लिए दर्द होता है (और यह अजीब लगता है कि मुझे ऐसा करने की आवश्यकता होगी)।जावा log4j.xml एक लेआउट साझा करने वाले एकाधिक appenders

धन्यवाद, जेफ

+0

आपके पास कितने परिशिष्ट हैं? यदि आपके पास इतने सारे लोग हैं कि उन्हें बनाए रखने में दर्द होता है, तो संभवतः आप गलत तरीके से चीजों के बारे में सोच रहे हैं। – skaffman

+0

अभी मेरे पास 2. एक कंसोल एपेंडर और फ़ाइल एपेंडर है। मैं लॉग इन संदेशों को दोनों में समान दिखने के लिए पसंद करता हूं और मेरे पास दोनों के लिए एक ही लेआउट पैटर्न है। ऐसा लगता है कि मुझे समेकित करने में सक्षम होना चाहिए ... –

उत्तर

3

आप log4j.xml के बजाय log4j.properties का उपयोग कर विचार किया है? गुण संस्करण मूल्यों के लिए परिवर्तनीय प्रतिस्थापन स्वीकार करता है।

आप log4j.properties फ़ाइल (someProp=value) के अंदर अपनी खुद की संपत्तियां बना सकते हैं और बाद में मूल्य प्राप्त करने के लिए ${someProp} का उपयोग कर सकते हैं। (हालांकि यकीन नहीं: डी)

मैं क्या याद से

आप भी log4j.xml फ़ाइल में इस हो सकता है लेकिन चर प्रणाली चर (-DsomeProp=value) के रूप में परिभाषित किया जाना चाहिए और अपने log4j.xml में आप फिर से ${someProp} का उपयोग करें। हालांकि यह संस्करण थोड़ा गन्दा है क्योंकि आपके पास उसी स्थान पर घोषित पैराम नहीं हैं जिन्हें आप उनका उपयोग कर रहे हैं, जैसा कि आप log4j.properties में करते हैं।

+0

मैं इसे log4j.properties के साथ एक शॉट दूंगा। मुझे लगता है कि आप सही हैं कि यह गुणों का समर्थन करता है लेकिन किसी कारण से मुझे एक्सएमएल प्रारूप बेहतर पसंद है। धन्यवाद। –

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