2012-05-22 9 views
9

लॉगिंग को सक्षम करने के लिए कैसे करें मेरे स्प्रिंग + हाइबरनेट प्रोजेक्ट में, मैं लॉगबैक के साथ SLF4J 1.6.4 द्वारा लॉगिंग कर रहा था। अब, मैंने Ehcache 2.2.0 जोड़ा है (ehcache-spring-annotations-1.1.3 के माध्यम से)। कैशिंग, विधि के रूप में काम कर रहा है, @Cacheable के साथ एनोटेटेड, अब निष्पादित नहीं किया जा रहा है, हालांकि सही परिणाम लौटा रहा है। लेकिन, मुझे एहचेच द्वारा लिखे गए लॉग को देखने में दिलचस्पी है। चूंकि एहैशे भी SLF4J का उपयोग करता है, मुझे लगता है कि लॉग को मेरी लॉग फ़ाइल में लिखा जाना चाहिए। लेकिन, यह नहीं हो रहा है। Logback.xml में निम्नलिखित है।Ehcache

<root level="info"> 
    <appender-ref ref="STDOUT"/> 
    <appender-ref ref="ROLLING"/> 
</root> 

जोड़ना निम्नलिखित भी मदद नहीं करता है

<logger name="net.sf.ehcache"> 
</logger> 

Ehcache.xml

<cache name="sampleCache1" 
     eternal="false" 
     overflowToDisk="true" 
     timeToIdleSeconds="300" 
     timeToLiveSeconds="600"   
     memoryStoreEvictionPolicy="LFU"   
     /> 

कृपया मुझे समस्या को दूर करने के लिए सलाह।

एशैच SLF4J 1.6.1 का उपयोग कर रहा है, जबकि मेरी परियोजना SLF4J 1.6.4 का उपयोग कर रही थी। क्या इससे कोई समस्या हो सकती है?

धन्यवाद

+0

मैं सिर्फ पता चला ehcache सब कुछ मैं उम्मीद लॉग ऑन नहीं है कि:

मैं नीचे की तरह कुछ सुझाव देते हैं। तो, क्या आपने वास्तव में उन चीज़ों को लॉग इन किया है जो आपको उम्मीद करते हैं? – codesmith

उत्तर

44

ehcache DEBUG स्तर पर एक बहुत लॉग करता है। सबसे पहले, इस विन्यास का टुकड़ा INFO से नीचे के सभी प्रवेश बयान फिल्टर:

<root level="info"> 

<root level="ALL"> 
दूसरे

<logger name="net.sf.ehcache"> 

को बदलें यह एक वृद्धि की लॉगिंग स्तर की जरूरत है

<logger name="net.sf.ehcache" level="ALL"/> 

आपको एह कैश (और अन्य) से लॉगिंग कथन के बहुत सारे देखना चाहिए।

+0

धन्यवाद टॉमसज़। आपके समाधान काम करता है। – Tamim

+3

क्षमा करें वोट करने के लिए पर्याप्त प्रतिष्ठा नहीं है :) – Tamim

+0

क्या कोई मुझे पोस्ट की गई खोज पर एक नज़र डालें: http://stackoverflow.com/questions/41734999/spring-framework-plication-properties-vs-logback- xml – user18853

5

मुझे org.springframework.cache पर DEBUG लॉगिंग को सक्षम करने के लिए यह आसान लगता है क्योंकि मैं स्प्रिंग फ्रेमवर्क 4.2.1 की कैशिंग सुविधा (@Cacheable इत्यादि) का उपयोग कर रहा हूं।

+0

इसका मतलब है कि इस लाइन को application.properties में जोड़ना है: "logging.level.org.springframework.cache: DEBUG" – user18853

+0

हाँ जो काम करेगा, लेकिन [इसे पूरा करने के अन्य तरीके भी हैं] (https: // docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html)। – ben3000

5

मेरी राय में रूट लॉगर स्तर को ALL पर सेट करना एक अच्छा विचार नहीं है।

इसका मतलब है कि ALL प्रत्येक स्तर के लॉग संदेश प्राप्त होंगे (जब तक कि आप अपने परिशिष्टों पर सीमा निर्धारित न करें)।

इसके बजाय, मेरा सुझाव है कि आप INFO या WARN जैसे समझदार रूट लॉगर स्तर सेट करें, और फिर यदि आपको अधिक विशिष्ट जानकारी की आवश्यकता हो तो व्यक्तिगत लॉगर्स का लॉग स्तर सेट करें।

इस तरह आप अनावश्यक जानकारी का जंगल नहीं बना रहे हैं।

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
    </layout> 
</appender> 

<logger name="net.sf.ehcache"> 
    <level value="DEBUG"/> 
</logger> 

<root> 
    <priority value ="INFO" /> 
    <appender-ref ref="CONSOLE" /> 
</root> 

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