2011-09-04 3 views
19

मुझे this या this जैसे स्प्रिंग फ्रेमवर्क का उपयोग करके लॉगिंग के लिए कस्टम पहलू बनाने के तरीके पर बहुत सारे उदाहरण मिल गए हैं लेकिन इस स्थिति और प्रश्न के लिए मानक/सामान्य वसंत कार्यान्वयन नहीं मिला । क्या वसंत से लॉगिंग पहलू का कोई मानक कार्यान्वयन है या नहीं?वसंत: मानक लॉगिंग पहलू (इंटरसेप्टर)

उत्तर

22

हां वहाँ हैं!

<bean id="customizableTraceInterceptor" class="org.springframework.aop.interceptor.CustomizableTraceInterceptor"> 
    <property name="enterMessage" value="Entering $[methodName]($[arguments])"/> 
    <property name="exitMessage" value="Leaving $[methodName](): $[returnValue]"/> 
</bean> 
<aop:config> 
    <aop:advisor advice-ref="customizableTraceInterceptor" pointcut="execution(public * BankAccountServlet.*(..))"/> 
</aop:config> 

चेक बाहर CustomizableTraceInterceptor एपीआई, आप अलग परिभाषित कर सकते हैं कई प्लेसहोल्डर के साथ/बाहर निकलें/अपवाद संदेशों दर्ज करें:

  • $[methodName] - विधि का नाम लागू किया जा रहा
  • $[targetClassName] के साथ बदल दिया - कक्षा के नाम से प्रतिस्थापित किया गया है जो आमंत्रण का लक्ष्य है
  • $[targetClassShortName] - प्रतिस्थापित वर्ग मंगलाचरण
  • $[returnValue] का लक्ष्य है कि की कमी नाम - मंगलाचरण
  • $[argumentTypes] द्वारा दिए गए मान के साथ बदल दिया - विधि तर्क से कम वर्ग नामों की एक अल्पविराम से अलग सूची से बदल
  • $[arguments] - विधि तर्क
  • $[exception] की स्ट्रिंग प्रतिनिधित्व के अल्पविराम से अलग की सूची से बदल - किसी भी फेंकने योग्य की स्ट्रिंग प्रतिनिधित्व मंगलाचरण
  • $[invocationTime] दौरान उठाया के साथ बदल दिया - समय के साथ बदल दिया, मिलीसेकेंड में, विधि द्वारा उठाए गए में व्यवसाय
+0

यह दिलचस्प है, कल यह कोशिश करेगा, क्या आप लिंक प्रकाशित कर सकते हैं जहां मैं इसके बारे में पढ़ सकता हूं? धन्यवाद –

+0

हाँ, धन्यवाद, मैंने इसे अभी पढ़ा है :) –

+0

@ टोमाज़ - मैंने इसे ओएसजीआई बंडल से ग्रहण कन्या सर्वर में करने की कोशिश की। यह लॉग फ़ाइल में किसी भी लॉग मुद्रित नहीं किया था। बुनाई के मुद्दे के कारण मुझे संदेह है। लेकिन मैं बिल्कुल नहीं जानता। क्या आप मेरी मदद कर सकते हैं? अग्रिम में धन्यवाद। – Sam

0

यहाँ चौखटे AOP के माध्यम से प्रवेश करने है कि की सूची इस प्रकार हैं:

http://aspect4log.sf.net - बहुत अच्छा slf4j और @Log टिप्पणी द्वारा प्रवेश करने के लिए देख करता है। SpringAOP, और AspectJ के माध्यम से काम कर सकते हैं। AspectJ के साथ यह निजी तरीकों और रचनाकारों के लिए भी काम करता है और एक वर्ग को स्प्रिंग बीन होने की आवश्यकता नहीं होती है। उपयोग करने में बहुत आसान है, मैं इसे 5 मिनट के भीतर अपने प्रोजेक्ट के साथ चलाने में सक्षम था।

http://loggifier.unkrig.de - java.util.logging के माध्यम से लॉगिंग करता है, थोड़ा जटिल है और यह अच्छी तरह से दस्तावेज नहीं है लेकिन दावा करता है कि यह पहले से ही जार/युद्ध/कान फ़ाइलों को संकलित कर सकता है!

सार ट्रेसइंटरसेप्टर (स्प्रिंगएओपी से) और इसके उप-वर्ग SimpleTraceInterceptor और CustomizableTraceInterceptor के उप-वर्ग हैं। लॉगिंग कॉन्फ़िगरेशन कक्षाओं से अलग से किया जाता है। कॉमन्स-लॉगिंग के माध्यम से लॉग इन करें। चूंकि इसे स्प्रिंगएप के लिए डिज़ाइन किया गया है, इसलिए आपको स्प्रिंग बीन्स (और केवल स्प्रिंग बीन्स सार्वजनिक विधियों के साथ) के साथ काम करना है।