फ्लश नहीं करता है कुछ परिस्थितियों के लिए मुझे तुरंत लॉगबैक के फ़ाइल एपेंडर में फ्लशिंग करने की आवश्यकता होती है। मुझे docs में मिला है यह विकल्प डिफ़ॉल्ट रूप से सक्षम है। रहस्यमय रूप से यह काम नहीं करता है। जैसा कि मैंने अंतर्निहित प्रक्रियाओं में देखा है, BufferedOutputSream
सही ढंग से शामिल है। BufferedOutputSream.flush()
के साथ कोई समस्या है? शायद यह फ्लशिंग मुद्दे से संबंधित है।लॉगबैक फ़ाइल एपेंडर तुरंत
अद्यतन: मुझे Windows XP Pro SP 3 पर और Red Hat Enterprise Linux सर्वर रिलीज 5.3 (टिकंगा) पर समस्या मिली। मैं इन libs इस्तेमाल किया:
jcl-over-slf4j-1.6.6.jar
logback-classic-1.0.6.jar
logback-core-1.0.6.jar
slf4j-api-1.6.6.jar
logback.xml
है:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/somepath/file.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>file.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE"/>
</root>
</configuration>
अपडेट किया गया: मैं एक इकाई परीक्षण उपलब्ध कराएंगे लेकिन यह इतना आसान नहीं लगता है। मुझे इस मुद्दे का अधिक स्पष्ट रूप से वर्णन करने दें। प्रवेश की
- घटना हुई
- घटना फ़ाइल appender में पारित हो जाता
- घटना परिभाषित पैटर्न के साथ धारावाहिक है
- घटना के धारावाहिक संदेश फ़ाइल appender के लिए पारित किया और के बारे में उत्पादन करने के लिए लिखने के लिए है धारा
- स्ट्रीम को लिखना समाप्त हो गया है, आउटपुट स्ट्रीम फ़्लश हो गई है (मेरे पास कार्यान्वयन की जांच की गई है)। ध्यान दें कि
immidiateFlush
डिफ़ॉल्ट है इसलिए विधिflush()
स्पष्ट रूप से - फ़ाइल में कोई परिणाम नहीं है!
कुछ समय बाद जब कुछ अंतर्निहित बफर फ़ाइल में घटना प्रकट हुई थी। तो सवाल यह है: आउटपुट स्ट्रीम तत्काल फ्लश की गारंटी देता है?
ईमानदार होने के लिए मैंने अपने स्वयं के ImmediateRollingFileAppender
को लागू करके इसे हल कर लिया है जो तत्काल समन्वयन के FileDescriptor
की सुविधा प्रदान करता है। रुचि रखने वाला कोई भी व्यक्ति this का पालन कर सकता है।
तो यह एक लॉगबैक मुद्दा नहीं है।
आपने किस ऑपरेटिंग सिस्टम पर यह खोज लिया है? –
अपनी लॉगबैक कॉन्फ़िगरेशन पोस्ट करें। – gresdiplitude
क्या आप कृपया "रहस्यमय तरीके से यह काम नहीं करते" परिभाषित कर सकते हैं? एक इकाई परीक्षण प्रदान करना बहुत उपयोगी होगा। बीटीडब्ल्यू, जेडीके का कौन सा संस्करण आप उपयोग कर रहे हैं? – Ceki