2009-09-10 11 views
9

मैं अपने log4j.properties फ़ाइल में निम्न पंक्ति है:लॉग निर्देशिका में लॉग इन करने के लिए, मेरे log4j (ग्लासफ़िश का उपयोग करके) को कॉन्फ़िगर करने के लिए कॉन्फ़िगर नहीं किया गया है?

log4j.appender.logfile.File = MyApplication.log

मेरे लॉग फ़ाइल MyDomain/config निर्देशिका में प्रकट होता है, लेकिन मैं इसे भूमि चाहते हैं MyDomain/लॉग निर्देशिका में। मैं उसे कैसे प्राप्त कर सकता हूं? मुझे starterv स्क्रिप्ट को संशोधित करने की अनुमति नहीं है।

आपकी मदद के लिए अग्रिम धन्यवाद!

उत्तर

0

आप एक निरपेक्ष पथ, नहीं एक रिश्तेदार एक (यूनिक्स पथ कल्पना करते हुए) निर्दिष्ट करना होगा:

log4j.appender.logfile.File=/path/to/MyDomain/logs/MyApplication.log 
1

निम्नलिखित बिलाव में संभव है, शायद Glassfish सेट इसे करने के लिए एक समान वातावरण चर की ओर इशारा करते फाइल सिस्टम स्थान है:

log4j.appender.logfile.File=${catalina.home}/logs/MyApplication.log 

${catalina.home} एक वातावरण/प्रणाली संपत्ति ओर इशारा करते हुए यह निर्देशिका स्थापित है करने के लिए बिलाव द्वारा निर्धारित है। Log4j कम से कम PropertyConfigurer में इनका विस्तार करने में सक्षम है।

+4

कैटलिना के बजाय catalina.base का उपयोग करना बेहतर है। कुछ, यह आवश्यक है कि आपकी टॉमकैट स्थापना केवल पढ़ने-योग्य वैश्विक भाग और प्रति-टोमकैट-उदाहरण लिखने योग्य निर्देशिकाओं में विभाजित हो (जहां वेबपैप और लॉग निर्देशिकाएं हैं)। ऐसा लगता है (गुगलिंग के आधार पर) कि ग्लासफिश भी catalina.base संपत्ति को परिभाषित करता है। –

8

वास्तव में, यह log4j जो चर $ {catalina.home} का समाधान करता है है, Glassfish $ के रूप में $ {catalina.home} {वाणी com.sun.aas.instanceRoot} उस पथ को इंगित करता है/MyDomain/

/करने के लिए

आप जीएफ पर्यावरण में किसी भी चर को घोषित कर सकते हैं और इसे log4j.properties पर डाल सकते हैं, log4j कॉन्फ़िगर होने पर उन्हें पार्स करेगा।

यह वास्तव में सर्वर आधारित लॉगिंग विन्यास पैरामीटर सेट करने के लिए उपयोगी है, परीक्षण और तैनाती

7

आप $ {com.sun.aas.instanceRoot} का उपयोग करने के appender सेट कर सकते हैं के लिए एक ही log4.properties का उपयोग कर, लेकिन विपरीत कुछ अन्य टिप्पणी यह ​​होना चाहिए:

log4j.appender.logfile.File=${com.sun.aas.instanceRoot}/logs/MyApplication.log 

यह ../domains/domain{x}/logs निर्देशिका में लॉग के लिए सही स्थान है।

+0

ध्यान दें कि मैं यह अपाचे टॉमकैट 5.5 के लिए काम नहीं कर सका, यह सिर्फ ग्लासफ़िश के लिए है। –

+0

यह ग्लासफ़िश के लिए है। और अभी तक, जीएफ बॉक्स के बाहर log4j का समर्थन नहीं करता है। –

+0

धन्यवाद, यह मेरे लिए ग्लासफ़िश 3.1.1 पर काम करता है – kpasgma

0

ग्लासफिश में के बाद से config और लॉग में फ़ाइल भूमि

log4j.appender.logfile.File=../logs/MyApplication.log 

ग्लासफिश 3.1.1 पर परीक्षण किया गया और यह काम करता

log4j.appender.logfile.File=MyApplication.log 

उपयोग करने के बजाय, अपने भाई है।

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