Merge "Don't throw a NPE in SharedLog#e"
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package android.net.util;
|
package android.net.util;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.LocalLog;
|
import android.util.LocalLog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -92,10 +93,17 @@ public class SharedLog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log an error due to an exception, with the exception stacktrace.
|
* Log an error due to an exception, with the exception stacktrace if provided.
|
||||||
|
*
|
||||||
|
* <p>The error and exception message appear in the shared log, but the stacktrace is only
|
||||||
|
* logged in general log output (logcat).
|
||||||
*/
|
*/
|
||||||
public void e(@NonNull String msg, @NonNull Throwable e) {
|
public void e(@NonNull String msg, @Nullable Throwable exception) {
|
||||||
Log.e(mTag, record(Category.ERROR, msg + ": " + e.getMessage()), e);
|
if (exception == null) {
|
||||||
|
e(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Log.e(mTag, record(Category.ERROR, msg + ": " + exception.getMessage()), exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void i(String msg) {
|
public void i(String msg) {
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ public class SharedLogTest {
|
|||||||
final SharedLog logLevel2a = logTop.forSubComponent("twoA");
|
final SharedLog logLevel2a = logTop.forSubComponent("twoA");
|
||||||
final SharedLog logLevel2b = logTop.forSubComponent("twoB");
|
final SharedLog logLevel2b = logTop.forSubComponent("twoB");
|
||||||
logLevel2b.e("2b or not 2b");
|
logLevel2b.e("2b or not 2b");
|
||||||
|
logLevel2b.e("No exception", null);
|
||||||
|
logLevel2b.e("Wait, here's one", new Exception("Test"));
|
||||||
logLevel2a.w("second post?");
|
logLevel2a.w("second post?");
|
||||||
|
|
||||||
final SharedLog logLevel3 = logLevel2a.forSubComponent("three");
|
final SharedLog logLevel3 = logLevel2a.forSubComponent("three");
|
||||||
@@ -54,6 +56,9 @@ public class SharedLogTest {
|
|||||||
final String[] expected = {
|
final String[] expected = {
|
||||||
" - MARK first post!",
|
" - MARK first post!",
|
||||||
" - [twoB] ERROR 2b or not 2b",
|
" - [twoB] ERROR 2b or not 2b",
|
||||||
|
" - [twoB] ERROR No exception",
|
||||||
|
// No stacktrace in shared log, only in logcat
|
||||||
|
" - [twoB] ERROR Wait, here's one: Test",
|
||||||
" - [twoA] WARN second post?",
|
" - [twoA] WARN second post?",
|
||||||
" - still logging",
|
" - still logging",
|
||||||
" - [twoA.three] 3 >> 2",
|
" - [twoA.three] 3 >> 2",
|
||||||
|
|||||||
Reference in New Issue
Block a user