एंड्रॉइड में आपको लॉग विधियों का उपयोग करना चाहिए जो एंड्रॉइड द्वारा उपयोग किए गए लॉगकैट लॉग व्यूअर के साथ अच्छी तरह से काम करते हैं।
} catch (IOException e) {
Log.e("YOUR ERROR TAG HERE", "Copying failed", e);
}
Log.e विधि है कि एक तर्क आप यह सुनिश्चित करें कि लॉग वर्ग स्टैकट्रेस लेने के लिए और इसे सही ढंग से लॉग इन करें Logcat लिए होगा के रूप में एक फेंकने योग्य लेता है का उपयोग करना। यदि आप e.printStackTrace का उपयोग करते हैं तो यह सामान्य जावा लॉगिंग विधियों का उपयोग करेगा और यह लॉगकैट में सही ढंग से दिखाई नहीं देगा और कुछ मामलों में कक्षा में कूदने के लिए लॉगकैट में कक्षा के नाम पर डबल क्लिक करना संभव नहीं होगा और इसमें उल्लिखित विधि स्टैक ट्रेस। शून्य द्वारा विभाजन के लिए
प्रिंट स्टैकट्रेस इस तरह दिखेगा:
11-21 20:55:47.360: W/System.err(989): java.lang.ArithmeticException: divide by zero
11-21 20:55:47.379: W/System.err(989): at test.tabs.TabChooser.onCreate(TabChooser.java:15)
11-21 20:55:47.390: W/System.err(989): at android.app.Activity.performCreate(Activity.java:4465)
11-21 20:55:47.410: W/System.err(989): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-21 20:55:47.410: W/System.err(989): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
11-21 20:55:47.420: W/System.err(989): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
11-21 20:55:47.420: W/System.err(989): at android.app.ActivityThread.access$600(ActivityThread.java:122)
11-21 20:55:47.420: W/System.err(989): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
11-21 20:55:47.420: W/System.err(989): at android.os.Handler.dispatchMessage(Handler.java:99)
11-21 20:55:47.420: W/System.err(989): at android.os.Looper.loop(Looper.java:137)
11-21 20:55:47.420: W/System.err(989): at android.app.ActivityThread.main(ActivityThread.java:4340)
11-21 20:55:47.430: W/System.err(989): at java.lang.reflect.Method.invokeNative(Native Method)
11-21 20:55:47.430: W/System.err(989): at java.lang.reflect.Method.invoke(Method.java:511)
11-21 20:55:47.430: W/System.err(989): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-21 20:55:47.430: W/System.err(989): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-21 20:55:47.430: W/System.err(989): at dalvik.system.NativeStart.main(Native Method)
अपवाद एक चेतावनी के रूप लॉग ऑन है और लॉग टैग बहुत उपयोगी नहीं है।
शून्य द्वारा विभाजन का सही लॉगिंग इस तरह दिखेगा:
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): Copying failed
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): java.lang.ArithmeticException: divide by zero
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at test.tabs.TabChooser.onCreate(TabChooser.java:16)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.Activity.performCreate(Activity.java:4465)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.ActivityThread.access$600(ActivityThread.java:122)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.os.Handler.dispatchMessage(Handler.java:99)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.os.Looper.loop(Looper.java:137)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at android.app.ActivityThread.main(ActivityThread.java:4340)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at java.lang.reflect.Method.invokeNative(Native Method)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at java.lang.reflect.Method.invoke(Method.java:511)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-21 21:03:32.480: E/YOUR ERROR TAG HERE(1356): at dalvik.system.NativeStart.main(Native Method)
अपवाद सही ढंग से अपनी लॉग टैग के साथ एक त्रुटि के रूप में लॉग ऑन है और लॉग संदेश।
System.err पर इस बेहतर है? –
@ इगोर जी .: हां, इगोर, यह System.err पर बेहतर है। यदि आप बस System.err का उपयोग करते हैं, तो आप LogCat आउटपुट में अपना ऐप टैग नहीं देख पाएंगे। –
मुझे केवल 'java.lang.NullPointerException' मिलता है लेकिन यह एक स्टैकट्रैक नहीं है, यह केवल त्रुटि है!, मैं पूरा पता कैसे प्राप्त कर सकता हूं? –