2009-06-26 15 views
50

पुरानी घूर्णन लॉग फ़ाइलों को हटाने के लिए मैं log4j कैसे प्राप्त कर सकता हूं? मुझे पता है कि मैं स्वचालित नौकरियां स्थापित कर सकता हूं (यूनिक्स के लिए क्रॉन और विंडोज़ के लिए निर्धारित कार्य), लेकिन मैं इसे क्रॉस प्लेटफ़ॉर्म चाहता हूं, और मैं इसे ओएस में अलग कोड के बजाय हमारे एप्लिकेशन के एक हिस्से के रूप में हमारे एप्लिकेशन के लॉग कॉन्फ़िगरेशन में चाहता हूं विशिष्ट पटकथा भाषाओं। हमारा आवेदन ओएस स्क्रिप्टिंग भाषाओं में नहीं लिखा गया है, और मैं इसमें इसका हिस्सा नहीं करना चाहता हूं।पुरानी घूर्णन लॉग फ़ाइलों को हटाने के लिए मैं log4j कैसे प्राप्त कर सकता हूं?

उत्तर

44

RollingFileAppender करता है। आपको बस बैकअप फ़ाइल के लिए अधिकतम बैक अप इंडेक्स को उच्चतम मान पर सेट करने की आवश्यकता है।

+42

क्या DailyRollingFileAppender के साथ ऐसा करने का कोई तरीका है? –

+3

नहीं, मानक के साथ नहीं - नीचे उपयोगकर्ता 3195649 से उत्तर देखें। Log4j के लिए अपाचे एक्स्ट्रा पर विश्वास करें कुछ समान है। –

+0

क्या यह पुरानी लॉगफाइल को भी हटा देगा जो DailyRollingFileAppender द्वारा (* .log.2016-09-12) से पहले संग्रहीत किया गया है? – mvdb

37

लॉग एक कारण के लिए घूमते हैं, ताकि आप केवल इतनी सारी लॉग फाइलें रख सकें। log4j.xml में आप अपने नोड के लिए इस जोड़ सकते हैं:

<param name="MaxBackupIndex" value="20"/> 

मूल्य केवल करीब 20 घुमाया लॉग फाइल रखने के लिए log4j.xml बताता है। यदि आप चाहते हैं या यहां तक ​​कि यदि आप चाहते हैं तो आप इसे 5 तक सीमित कर सकते हैं। यदि आपका एप्लिकेशन उस डेटा को लॉगिंग नहीं कर रहा है, और आपके पास पिछले 8 महीनों में 20 लॉग फाइलें हैं, लेकिन आपको केवल एक हफ्तों के लॉग की आवश्यकता है, तो मुझे लगता है कि आप अपने log4j.xml "MaxBackupIndex" और "MaxFileSize" पैरा को ट्विक करने की आवश्यकता है।

वैकल्पिक रूप से, आप एक गुण फ़ाइल (xml के बजाय) का उपयोग और 15 फ़ाइलें (उदाहरण के लिए) को बचाने के लिए चाहते हैं कर रहे हैं

log4j.appender.[appenderName].MaxBackupIndex = 15 
+6

क्या यह DailyRollingFileAppender के साथ काम करता है? – rogerdpack

7

DailyRollingFileAppender द्वारा बनाई गई पुरानी लॉग फ़ाइलों को हटाने के लिए कोई डिफ़ॉल्ट मान नहीं है। लेकिन आप अपना खुद का कस्टम एपेंडर लिख सकते हैं जो पुराने लॉग फ़ाइलों को उसी तरह से हटा देता है जैसे maxBackupIndex RollingFileAppender के लिए करता है।

सरल निर्देश 1 से here

पाया:

आप एक दैनिक लॉग फ़ाइल के लिए Apache log4j DailyRollingFileAppender उपयोग करने के लिए कोशिश कर रहे हैं, तो आप फ़ाइलों की अधिकतम संख्या निर्दिष्ट करना चाहते हैं करना पड़ सकता है जो होना चाहिए रखना। रोलिंगफाइलएपेंडर रोलिंग की तरह maxBackupIndex का समर्थन करता है। लेकिन Log4j (Apache log4j 1.2.16) का वर्तमान संस्करण पुरानी लॉग फ़ाइलों को हटाने के लिए कोई तंत्र प्रदान नहीं करता है यदि आप DailyRollingFileAppender का उपयोग कर रहे हैं। मैंने maxBackupIndex संपत्ति जोड़ने के लिए DailyRollingFileAppender के मूल संस्करण में छोटे संशोधन करने की कोशिश की। इसलिए, पुराने लॉग फ़ाइलों को साफ़ करना संभव होगा जिन्हें भविष्य के उपयोग के लिए आवश्यक नहीं हो सकता है।
संबंधित मुद्दे

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