Merge "Add Telecom log tagging for whether logs took place in Telecom lock." into udc-dev

This commit is contained in:
TreeHugger Robot
2023-03-27 19:48:34 +00:00
committed by Android (Google) Code Review

View File

@@ -69,6 +69,7 @@ public class Log {
private static final Object sSingletonSync = new Object();
private static EventManager sEventManager;
private static SessionManager sSessionManager;
private static Object sLock = null;
/**
* Tracks whether user-activated extended logging is enabled.
@@ -387,6 +388,19 @@ public class Log {
ERROR = isLoggable(android.util.Log.ERROR);
}
/**
* Sets the main telecom sync lock used within Telecom. This is used when building log messages
* so that we can identify places in the code where we are doing something outside of the
* Telecom lock.
* @param lock The lock.
*/
public static void setLock(Object lock) {
// Don't do lock monitoring on user builds.
if (!Build.IS_USER) {
sLock = lock;
}
}
/**
* If user enabled extended logging is enabled and the time limit has passed, disables the
* extended logging.
@@ -512,7 +526,10 @@ public class Log {
args.length);
msg = format + " (An error occurred while formatting the message.)";
}
return String.format(Locale.US, "%s: %s%s", prefix, msg, sessionPostfix);
// If a lock was set, check if this thread holds that lock and output an emoji that lets
// the developer know whether a log message came from within the Telecom lock or not.
String isLocked = sLock != null ? (Thread.holdsLock(sLock) ? "\uD83D\uDD12" : "❗") : "";
return String.format(Locale.US, "%s: %s%s%s", prefix, msg, sessionPostfix, isLocked);
}
/**