2012-06-08 16 views
16

मेरे पास मेरी लॉगबैक कॉन्फ़िगरेशन फ़ाइल में निम्न रोलिंगफाइलएपेंडर है।RollingFileAppender में FileNamePattern - लॉगबैक कॉन्फ़िगरेशन

<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <File>C:\Files\MyLogFile.log</File>  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <FileNamePattern>C:\Files\MyLogFile.%d{yyyy-MM-dd}.log</FileNamePattern>  
    <MaxHistory>30</MaxHistory>  
    </rollingPolicy>  
    <encoder> 
     <pattern>%date %level [%thread] %logger{60} [%file:%line] %msg%n</pattern> 
    </encoder> 
    </appender> 

यह MyLogFile.log के रूप में ऊपर में एक फ़ाइल लिखने करता है लेकिन FileNamePattern में विनिर्दिष्ट तारीख संलग्न नहीं है। कोई भी विचार मैं अपने फ़ाइल नाम में दिनांक जोड़ने के लिए कैसे प्रबंधित कर सकता हूं। धन्यवाद।

+0

यह एक अच्छा सवाल है और मुझे भी भ्रमित कर दिया। लॉगबैक MyLogFile.log पर लॉगिंग करता रहता है और MyLogFile में कभी समाप्त नहीं होता है।% {Yyyy-MM-dd} .log मुझे आश्चर्य है कि इस फ़ाइल प्रॉपर्टी के लिए उपयोग क्या है। –

उत्तर

25

TimeBasedRollingPolicy राज्यों के लिए प्रलेखन:

ध्यान दें कि RollingFileAppender में file संपत्ति ( TimeBasedRollingPolicy की मूल) या तो सेट किया जा सकता है या छोड़ा गया। युक्त FileAppender की फ़ाइल प्रॉपर्टी सेट करके, आप सक्रिय लॉग फ़ाइल के स्थान और संग्रहीत लॉग फ़ाइलों का स्थान decouple कर सकते हैं। वर्तमान लॉग file संपत्ति द्वारा निर्दिष्ट फ़ाइल पर हमेशा लक्षित किए जाएंगे। यह इस प्रकार है कि वर्तमान में सक्रिय लॉग फ़ाइल का नाम समय के साथ नहीं बदलेगा। हालांकि, यदि आप file संपत्ति को छोड़ना चुनते हैं, तो सक्रिय फ़ाइल को fileNamePattern के मान के आधार पर प्रत्येक अवधि के लिए गणना की जाएगी।

अपने मामले में, बस file संपत्ति को छोड़ दें।

+0

चमत्कार किया ... धन्यवाद सिक्की। – Aks

+0

वेबपृष्ठ पर उदाहरण http://logback.qos.ch/manual/appenders.html टूटा हुआ है, यह फ़ाइल और फ़ाइल दोनों नाम का उपयोग करता है – Marx

2

उदाहरण के लिए आप निम्न कॉन्फ़िगरेशन का उपयोग कर सकते हैं। यह परीक्षण और काम करता था :)

<!-- FILE APPENDER WITH PRUDENT MODE --> 
<!-- IN PRUDENT MODE CANNOT BE SPECIFIED FILE, THIS PARAM IS OBTAINED FROM FILE NAME PATTERN --> 
<!-- IN PRUDENT MODE ONLY TIME BASED ROLLING POLICY IS SUPPORTED - BECAUSE WE HAVE A LOG OF MULTIPLE JVM INSTANCES--> 
<!-- SEE MORE AT http://logback.qos.ch/manual/appenders.html#prudentWithRolling --> 
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${logfile.path}-%d{yyyy-MM-dd}.log</fileNamePattern> 
    </rollingPolicy> 

    <encoder> 
     <pattern>${HOSTNAME} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
</appender>