2012-11-21 33 views
12

मैं निम्नलिखित log4j2.xml फ़ाइल है:log4j2 - लॉग फ़ाइलों की संख्या को सीमित

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="OFF"> 
    <appenders> 
    <RollingFile name="testLog" fileName="test.log" filePattern="" append="false"> 
     <PatternLayout pattern="[%t] %-5level - %msg%n%n"/> 
    <SizeBasedTriggeringPolicy size="5mb" /> 
    </RollingFile> 
    </appenders> 
    <loggers> 
    <logger name="TestsLogger" level="trace" additivity="false"> 
     <appender-ref ref="testLog"/> 
    </logger> 
    <root level="debug"> 
     <appender-ref ref="testLog"/> 
    </root> 
    </loggers> 
</configuration> 

मैं कैसे पर एक ही लॉगफ़ाइल अधिलेखन की ऐसी है कि

  1. इसके बजाय इस विन्यास संशोधित कर सकते हैं 5 एमबी सीमा तक पहुंचने के बाद फिर से एक नई फाइल बनाई गई है। Test1.log, test2.log और इसी तरह कुछ होना अच्छा लगेगा।
  2. मैं 1 में बनाई गई आंशिक लॉग फ़ाइलों की संख्या को कैसे सीमित कर सकता हूं?

    creating test1.log [present log files: test1.log] 
    test1.log - 5mb limit reached 
    creating test2.log [present log files: test1.log, test2.log] 
    test2.log - 5mb limit reached 
    creating test3.log [present log files: test2.log, test3.log] 
    test3.log - 5mb limit reached 
    creating test4.log [present log files: test3.log, test4.log] 
    and so on 
    

किसी को भी पता है, कैसे ऐसा ही कुछ प्राप्त करने के लिए: क्या मैं हासिल करना चाहते हैं निम्नलिखित की तरह एक योजना है? बेशक यह अच्छा होगा, अगर ऐसा कुछ लॉगऑज 2 अकेले के साथ संभव था। लेकिन हो सकता है कि लॉग 4j2 को किसी प्रकार के बाहरी प्रोग्राम के साथ गठबंधन करने का एक तरीका है जो मुख्य जावा एप्लिकेशन के साथ चलेंगे और दो अंतिम लॉग फ़ाइलों को बरकरार रखते हुए, अनावश्यक लॉग फ़ाइलों को हटा देगा। तो अगर किसी के पास कम से कम 1 के लिए कोई सुझाव है, तो यह पहले से ही हो सकता है, जिसे मैं ढूंढ रहा हूं। क्योंकि मैं दूसरे भाग के लिए एक कार्यक्रम लिखने में सक्षम हो सकता है। बेशक यह शानदार होगा, अगर दूसरा भाग log4j2 के साथ भी किया जा सकता है।

उत्तर

20

मैंने अभी तक log4j2 का उपयोग नहीं किया है, लेकिन RollingFileAppender का दस्तावेज़ीकरण आपको बहुत से कॉन्फ़िगरेशन उदाहरण देता है। देर से प्रतिक्रिया के लिए

<RollingFile name="RollingFile" fileName="logs/app.log" 
      filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 
    <PatternLayout> 
    <pattern>%d %p %C{1.} [%t] %m%n</pattern> 
    </PatternLayout> 
    <Policies> 
    <SizeBasedTriggeringPolicy size="5 MB"/> 
    </Policies> 
    <DefaultRolloverStrategy max="20"/> 
</RollingFile> 
+0

क्षमा करें:

आप तेजी के लिए दिलचस्प है कुछ इस तरह (DefaultRolloverStrategy का प्रयोग करके) किया जाना है। मैं सिर्फ जवाब के लिए धन्यवाद देना चाहता था। यह log4j2 के संभावित भविष्य के उपयोग के लिए एक उदाहरण के रूप में मेरी सेवा करेगा। –

+0

बहुत बहुत धन्यवाद, यह काम करता है – Braj