2009-06-08 15 views
16

मेरे पास एक लॉग फ़ाइल है जिसमें निम्न एपेंडर जोड़ा गया है:मैं log4j में लॉग फ़ाइल को ओवरराइट कैसे करूं?

 
logger.addAppender(new FileAppender(new PatternLayout(),"log.txt")); 

बात यह है कि, हर बार जब मैं अपना एप्लिकेशन चला रहा हूं, अतिरिक्त लॉगिंग जानकारी उसी लॉग फ़ाइल में संलग्न हो जाती है। प्रत्येक बार फ़ाइल को ओवरराइट करने के लिए मैं क्या कर सकता हूं?

उत्तर

5

रोलिंगफाइलएपेंडर का उपयोग करें।

+1

एपीआई लिंक नहीं है (!): Http://logging.apache.org/log4j/1.2/apidocs/ org/apache/log4j/RollingFileAppender.html – AgileJon

+1

भी, फ़ाइल एपेंडर को झूठे मान के साथ एक और बूलियन पैरामीटर भेजकर, वही परिणाम उत्पन्न करता है। – Geo

32

आप एक appender की तरह घोषणा की है यदि ऐसा है तो एक गुण में फ़ाइल:

log4j.appender.LOGFILE=org.apache.log4j.FileAppender 
log4j.appender.LOGFILE.File=file.log 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=%d %-5p %c - %m%n 

तो क्या आप जोड़ना चाहते हैं

log4j.appender.LOGFILE.Append=false 

डिफ़ॉल्ट मान true है।

तो, यदि आप अपने परिशिष्ट प्रोग्रामेटिक रूप से घोषित कर रहे हैं, तो आप क्या करना चाहते हैं setAppend(false) पर कॉल करें।

5

मैट द्वारा पिछला उत्तर सही है सिवाय इसके कि यह एक गुण फ़ाइल का उपयोग करता है। आप देख रहे हैं एक कार्यक्रम संबंधी दृष्टिकोण के लिए, मेरा सुझाव है कि आप इस प्रकार अपने कोड को संशोधित द्वारा संलग्न मोड अक्षम: कारण है कि

<param name="Append" value="false" /> 

नोट:

logger.addAppender(new FileAppender(new PatternLayout(),"log.txt", **false**)); 
5

अपने XML में निम्न पंक्ति जोड़ें दायर log4j में अजीब एक्सएमएल पार्सिंग, <param> तत्व ब्लॉक में प्रकट होना चाहिए (अन्य प्रकार के तत्वों के साथ मिलकर नहीं)।

उदाहरण के लिए, इस काम करता है:

<appender name="appender-log" class="org.apache.log4j.FileAppender"> 
<param name="File" value="efoimporter.log" /> 
<param name="Append" value="false" /> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%m%n" /> 
</layout> 
</appender> 

लेकिन इस

<appender name="appender-log" class="org.apache.log4j.FileAppender"> 
<param name="File" value="efoimporter.log" /> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%m%n" /> 
</layout> 
<param name="Append" value="false" /> 
</appender> 
संबंधित मुद्दे