Android Log.X не печатает stacktrace

E.printStackTrace () отлично работает (т. Е. Печатает мой стекtrace для stderr), но Log.X вообще не печатает stacktrace.

Например:

} catch (IOException e) { Log.e("Network", "Exception", e); e.printStackTrace(); } 

Вывод:

 08-31 03:46:21.992: W/Network(13238): Exception 08-31 03:46:22.092: W/System.err(13238): java.net.UnknownHostException: Unable to resolve host "...": No address associated with hostname 08-31 03:46:22.204: W/System.err(13238): at java.net.InetAddress.lookupHostByName(InetAddress.java:394) 08-31 03:46:22.222: W/System.err(13238): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 08-31 03:46:22.222: W/System.err(13238): at java.net.InetAddress.getAllByName(InetAddress.java:214) 

Solutions Collecting From Web of "Android Log.X не печатает stacktrace"

Оказывается Android Log.getStackTraceString, который используется Log.X, проглатывает UnknownHostException. 🙁

От: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/util/Log.java#Log.getStackTraceString%28java.lang. Throwable% 29

 public static String getStackTraceString(Throwable tr) { if (tr == null) { return ""; } // This is to reduce the amount of log spew that apps do in the non-error // condition of the network being unavailable. Throwable t = tr; while (t != null) { if (t instanceof UnknownHostException) { return ""; } t = t.getCause(); } StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); tr.printStackTrace(pw); return sw.toString(); } 

Это все очень хорошо уменьшает извержение журнала, но даже не сказать мне, что мое исключение было плохой joojoo!