in sdk/core/azure-core-logging/src/main/java/com/azure/android/core/logging/implementation/LogUtils.java [53:91]
public static String ensureValidLoggerName(String name) {
if (name == null) {
return null;
} else {
name = name.trim();
}
if (name.length() > TAG_MAX_LENGTH && Build.VERSION.SDK_INT <= 25) {
final StringTokenizer st = new StringTokenizer(name, ".");
if (st.hasMoreTokens()) { // Note that empty tokens are skipped, i.e., "aa..bb" has tokens "aa", "bb".
final StringBuilder sb = new StringBuilder();
String token;
do {
token = st.nextToken();
if (token.length() == 1) { // Token of one character appended as is.
sb.append(token);
sb.append('.');
} else if (st.hasMoreTokens()) { // Truncate all but the last token.
sb.append(token.charAt(0));
sb.append("*.");
} else { // Last token (usually class name) appended as is.
sb.append(token);
}
} while (st.hasMoreTokens());
name = sb.toString();
}
// Either we had no useful dot location at all or name still too long.
// Take leading part and append '*' to indicate that it was truncated.
if (name.length() > TAG_MAX_LENGTH) {
name = name.substring(0, TAG_MAX_LENGTH - 1) + '*';
}
}
return name;
}