मैं वास्तव में एक पुस्तकालय लिखा (https://github.com/michaelgantman/Mgnt/releases/tag/1.01) जिसमें कई उपयोगिताएं हैं। उनमें से एक सामान्य उद्देश्य stacktrace फ़िल्टर है जिसे मैंने बड़े पैमाने पर उपयोग किया और इसे बहुत उपयोगी पाया। कक्षा को टेक्स्ट उपयोग कहा जाता है और इसमें कई ओवरराइड हस्ताक्षर के साथ विधि getStacktrace() है। यह एक थ्रोबल इंस्टेंस लेता है और संकुल के पैकेज उपसर्ग को सेट करने की अनुमति देता है जो प्रासंगिक हैं।मान लीजिए कि आपकी कंपनी की कोड हमेशा संकुल कि के साथ शुरू में रहता दें "com.plain। *" तो तुम इस तरह के एक उपसर्ग सेट और इस
logger.info(TextUtils.getStacktrace(e, true, "com.plain."));
यह बहुत ही चालाकी से सभी का पता लगाने की बेकार भागों छोड़ने को फ़िल्टर कर देगा कर आपको बहुत संक्षिप्त स्टैकट्रस के साथ। इसके अलावा, मैं यह बहुत करने के लिए convinient उपसर्ग प्री-सेट और फिर बस convinience विधि
TextUtils.getStacktrace(e);
का उपयोग यह भी ऐसा ही होगा मिल गया। उपसर्ग इसके अलावा पूर्व निर्धारित करने के लिए बस का उपयोग विधि
setRelevantPackage("com.plain.");
आप अपने स्प्रिंग विन्यास के लिए निम्न खंड जोड़ सकते हैं और उसके बाद तो समझ लें कि यदि आप वसंत वातावरण का उपयोग करें:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="com.mgnt.utils.TextUtils"/>
<property name="targetMethod" value="setRelevantPackage"/>
<property name="arguments" value="com.plain."/>
</bean>
पुस्तकालय के साथ आता है अच्छी तरह से लिखा (मुझे आशा है) जावाडोक जो सब कुछ विस्तार से बताता है। लेकिन यहाँ एक छोटे से चिढ़ाने है:
at com.plain.BookService.listBooks()
at com.plain.BookService$$FastClassByCGLIB$$e7645040.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke()
...
at com.plain.LoggingAspect.logging()
at sun.reflect.NativeMethodAccessorImpl.invoke0()
...
at com.plain.BookService$$EnhancerByCGLIB$$7cb147e4.listBooks()
at com.plain.web.BookController.listBooks()
बजाय
at com.plain.BookService.listBooks()
at com.plain.BookService$$FastClassByCGLIB$$e7645040.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke()
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint()
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed()
at com.plain.LoggingAspect.logging()
at sun.reflect.NativeMethodAccessorImpl.invoke0()
at sun.reflect.NativeMethodAccessorImpl.invoke()
at sun.reflect.DelegatingMethodAccessorImpl.invoke()
at java.lang.reflect.Method.invoke()
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs()
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod()
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke()
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()
at org.springframework.aop.interceptor.AbstractTraceInterceptor.invoke()
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke()
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke()
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept()
at com.plain.BookService$$EnhancerByCGLIB$$7cb147e4.listBooks()
at com.plain.web.BookController.listBooks()
स्रोत
2016-01-17 19:27:24
आह हाँ, "नरक से स्टैक ट्रेस" रेती Horstmann के अनुसार: https://plus.google.com/+CayHorstmann/posts/YAwGCVpLXgH –