2015-06-23 6 views
5

मैं ऐसी समस्या से निपट रहा हूं जहां सोलर 5.1 बहुत अधिक लॉग फाइल बना रहा है। हर बार जब Solr पुनरारंभ, और समय समय पर सप्ताह भर में, Solr निम्न फ़ाइलें बनाता है और मैं इसे रोकने के लिए की जरूरत है:सोलर 5.1: सोलर बहुत अधिक लॉग फाइलें बना रहा है

  1. प्रकार solr_gc_xxxxxxxx_xxxx, x का दिनांक और संख्या की पहचान करने के कुछ प्रकार के लिए खड़े की फ़ाइलें, क्रमशः। इनमें कचरा संग्रहण जानकारी होती है।
  2. प्रकार solr_log_xxxxxxxx_xxxx की फ़ाइलें, जहां तारीख के लिए एक्स का स्टैंड और क्रमशः किसी प्रकार की पहचान संख्या है। इनमें solr.log में आपको वही जानकारी मिलती है जो आपको मिलती है।
  3. प्रकार की एक फ़ाइल solr- [port] -console.log। WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec

एक सप्ताह में मैं ऊपर racked लगभग तीस प्रकार 1 और 2 की फाइलों की: यह हमेशा केवल निम्न पाठ शामिल हैं!

इससे भी बदतर, फ़ाइल प्रकार 1 और 2 मेरी log4j.rootlogger सेटिंग का सम्मान नहीं करते हैं और इसके बजाय INFO स्तर सामग्री से भरे हुए हैं।

यहाँ मेरी log4j.properties फ़ाइल के प्रासंगिक भागों हैं:

# Logging level 
solr.log=logs 
log4j.rootLogger=WARN, file 

#- size rotation with log cleanup. 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.MaxFileSize=100MB 
log4j.appender.file.File=${solr.log}/solr.log 
log4j.appender.file.MaxBackupIndex=0 

मुझे क्या करना चाहते हैं निम्नलिखित है:

  1. केवल solr.log + एक बैकअप फ़ाइल बनाएँ। solr.log समय-समय पर अधिलेखित किया जाना चाहिए।
  2. कोई अन्य लॉग फ़ाइल नहीं बनाएँ।

इसे पूरा करने के लिए मैं क्या कर सकता हूं?

उत्तर

7

तो कुछ समय बाद, मुझे पता चला कि इसे कैसे ठीक किया जाए।

संक्षेप में, सोलर ने स्टार्टअप पर और समय-समय पर solr_log * और gc_log * पैटर्न के साथ फ़ाइलों का पूरा समूह बना दिया। आखिर में मेरे पास कुछ गंभीर गंभीर समस्याएं थीं, क्योंकि लॉग की अंतहीन राशि के कारण सोलर बनाना पसंद करता था।

/path/to/solr/bin पर नेविगेट करें और solr स्क्रिप्ट का पता लगाएं, जो स्टार्टअप पर चलता है। फ़ाइल खोलें, निम्नलिखित के लिए देखो, और mv "$SOLR_LOGS_DIR/solr.log" "$SOLR_LOGS_DIR/solr_log_$(date +"%Y%m%d_%H%M")" बाहर टिप्पणी:

# backup the log files before starting 
if [ -f "$SOLR_LOGS_DIR/solr.log" ]; then 
    if $verbose ; then 
    echo "Backing up $SOLR_LOGS_DIR/solr.log" 
    fi 
    mv "$SOLR_LOGS_DIR/solr.log" "$SOLR_LOGS_DIR/solr_log_$(date +"%Y%m%d_%H%M")" 
fi 

या इसे हटाने, यदि आप चाहें। आप -f ध्वज का उपयोग करने का भी प्रयास नहीं कर सकते हैं, लेकिन यहां मेरी दुकान पर हमें यह पसंद है।

यह solr.log बनाए रखेगा, लेकिन सोलर कोई और बैकअप नहीं बनाएगा। यदि आप दैनिक बैकअप चाहते हैं, तो मैं को कॉन्फ़िगर करने की सलाह देता हूं या बेहतर, DailyRollingFileAppenderlog4j.properties फ़ाइल में कॉन्फ़िगर करने की अनुशंसा करता हूं, जो /path/to/solr/server/resources के अंतर्गत पाया जा सकता है।

यदि आप चाहते हैं, तो आप सोलर कचरा संग्रहण लॉग के लिए mv लाइन पर भी टिप्पणी कर सकते हैं, जो आपको केवल solr_gc.log के साथ छोड़ देगा।

यदि मेरे जैसे, आपके पास सौर के लिए जीसी की निगरानी करने के अन्य तरीके हैं, तो आपको पूरी तरह से जीसी लॉगिंग बंद करना होगा।

solr स्क्रिप्ट को एक ही निर्देशिका में, खुली solr.in.sh (मैक/लिनक्स केवल, मुझे लगता है कि solr.cmd Windows उपयोगकर्ताओं के लिए है) और इस लाइन बाहर टिप्पणी: # Enable verbose GC logging GC_LOG_OPTS="-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails \ -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime"

आपको सौर को पुनरारंभ करने की आवश्यकता होगी।

+2

यदि विंडोज़ पर, 'rEM' के साथ * solr.in.cmd * स्क्रिप्ट में वर्बोज़ जीसी लॉगिंग अक्षम करें। – dalenewman

+0

@ टीएमबीटी इसे समझने के लिए धन्यवाद! अगर सोलर डेवलपर टीम से कोई भी इसे कभी पढ़ता है ... कृपया अपनी स्टार्ट स्क्रिप्ट को ठीक करें और ठीक करें !!! WTF? –