2015-08-20 7 views
5

मेरे पास abc.jar फ़ाइल है और इसमें कुछ जावा क्लास हैं। मेरे पास इसका स्रोत कोड नहीं है। मैं डिबगिंग करते समय हिट किए गए वर्गों/विधियों के लॉग प्राप्त करना चाहता हूं। मैं यह कैसे कर सकता हूं?एक .jar फ़ाइल से लॉग कैसे प्राप्त करें?

पीएस - मैं इसके लिए log4j का उपयोग कर सकता था लेकिन मेरे पास स्रोत कोड नहीं है।

+0

क्या आप जानते हैं कि आपकी 'abc.JAR' फ़ाइल' slf4j' का उपयोग करती है या नहीं? –

+0

नहीं, वह abc.jar किसी भी लॉगिंग ढांचे का उपयोग/कार्यान्वयन नहीं करता है। –

+0

कमांड लाइन पर अपना जार चलाने का प्रयास करें। – VedX

उत्तर

2

आप अपनी टिप्पणी में बताते हैं कि आप जानते हैं कि किसी भी लॉगिंग ढांचे का उपयोग नहीं करता है।

उस स्थिति में, इससे लॉग प्राप्त करना असंभव है।

हालांकि, आप क्या कर सकते हैं डीबगर का उपयोग करना है। सभी आईडीई में डिबगर्स हैं। यह आपको उन वर्गों की स्थिति जानने में मदद कर सकता है जब आप उनका उपयोग करते हैं।

+0

ओह, क्या ऐसा है? आह। –

2

मान लें कि आपके पास abc.jar है और यह लॉगिंग के लिए किसी भी ढांचे का उपयोग नहीं करता है, और आपके पास उल्लेख किया गया कोई स्रोत कोड नहीं है। नहीं, आप इस तरह से लॉग नहीं प्राप्त कर सकते हैं।

2

आपको Java's hprof जैसे प्रोफाइलिंग टूल का उपयोग करने की आवश्यकता है। यह प्रोफाइलिंग के लिए एक अच्छा परिचय है। शक्तिशाली नहीं होने पर, यह एक अच्छी शुरुआत है। बहुत सारे उपयोगी प्रोफाइलिंग टूल हैं। बस उन्हें गूगल।

HPROF के लिए, CPU उपयोग का नमूना लेना प्रोफाइल के तरीके (CPU = नमूने)

e.g. javac -J-agentlib:hprof=cpu=samples Hello.java 

और CPU उपयोग टाइम्स प्रोफाइल (cpu = बार)

e.g. javac -J-agentlib:hprof=cpu=times Hello.java 

ध्वनि तुम क्या जरूरत है की तरह। वे आपको बता सकते हैं कि क्या कहा जाता है और कितनी बार। वे आपको क्या नहीं बताएंगे वेरिएबल्स की स्थिति है। डीबगिंग का उपयोग यह है कि लॉगिंग एक विकल्प नहीं है।

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