2012-08-23 22 views
5

मैं निम्नलिखित पैटर्न के साथ लॉग फाइल नाम बनाना चाहते हैं पैदा:log4net गलत लॉग फ़ाइल नाम

SBRF_20120820.log 
SBRF_20120821.log 
SBRF_20120822.log 
SBRF_20120823.log 

दूसरे शब्दों में, प्रत्येक दिन के लिए एक नई फ़ाइल बनाना।

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net"> 
     <file type="log4net.Util.PatternString" value="Logs/SBRF_%date{yyyyMMdd}.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date %-5level - %message%newline" /> 
     </layout> 
    </appender> 
    <logger name="LogEmArquivo"> 
     <level value="INFO" /> 
     <appender-ref ref="FileAppender" /> 
    </logger> 
</log4net> 

जब मैं कार्यक्रम, उदाहरण के लिए आज चलाने के लिए, फ़ाइल SBRF_20120823.log बनाया जाएगा: तो, मैं निम्नलिखित विन्यास ऐसा करने के लिए पैदा करते हैं। लेकिन बाद के दिनों में लॉग SBRF_20120823.log फ़ाइल में लिखने के लिए रहता है, और फ़ाइलों बनाए गए हैं:

SBRF_20120823.log.2012-08-23 
SBRF_20120823.log.2012-08-24 
SBRF_20120823.log.2012-08-25 
SBRF_20120823.log.2012-08-26 

और अगर मैं कल कार्यक्रम चलाने के लिए, फ़ाइलों को बनाया जाएगा हैं:

SBRF_20120824.log.2012-08-24 
SBRF_20120824.log.2012-08-25 
SBRF_20120824.log.2012-08-26 
SBRF_20120824.log.2012-08-27 

क्यों?

उत्तर

7

आप < फ़ाइल > में दिनांक पैटर्न नहीं डालते हैं - यह फ़ाइल नाम का स्थिर हिस्सा है। आपको इसे < दिनांकपटर > में रखना होगा।

इसके अलावा, यदि आप log4net 1.2.11 का उपयोग कर रहे हैं, तो आप <preserveLogFileNameExtension> का उपयोग कर सकते हैं जो वर्तमान फ़ाइल पर दिनांक पैटर्न भी डालता है।

मुझे लगता है कि यह है कि क्या आप अपने विन्यास की तरह देखना चाहते हैं:

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net"> 
     <file type="log4net.Util.PatternString" value="Logs/SBRF_.log"/> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <datePattern value="yyyyMMdd" /> 
     <preserveLogFileNameExtension value="true"/> 
     <staticLogFileName value="false" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date %-5level - %message%newline" /> 
     </layout> 
    </appender> 
    <logger name="LogEmArquivo"> 
     <level value="INFO" /> 
     <appender-ref ref="FileAppender" /> 
    </logger> 

+0

+1। मैं अपना खुद का रोलिंगफाइल ऐपेंडर लिखता था, लेकिन अब इन नई सेटिंग्स के साथ नवीनतम लॉग 4नेट का उपयोग करने के लिए स्विच करता हूं। –

0

<rollingStyle value="Date" /> हटाएं।

+0

क्यों? और अगर मैं इस टैग को हटा देता हूं, तो लॉग प्रत्येक दिन के लिए एक नई फाइल बनाने के लिए रुक जाएगा, है ना? –

-1

ऐसा नहीं लगता कि आप रोलिंगफाइलएपेंडर के साथ इस व्यवहार को बदलते हैं, इसलिए आपको अपना स्वयं का एपेंडर बनाना होगा।

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