code: public static String tag(Class<?> clazz) {
          String result = clazz.getSimpleName();
          for (Class<?> outer = clazz.getEnclosingClass(); outer != null; outer = outer
                  .getEnclosingClass()) {
              result = outer.getSimpleName() + "." + result;
          }
          return result;
      }
docs: Constructs debug {@code TAG} strings using a {@link Class}, so that
  rename refactorings will keep the {@code TAG} up-to-date. Also handles
  constructing fully-qualified {@code TAG} strings for nested classes.
  <p>
  Note that this involves a small amount of runtime overhead at start-up,
  so if your code is particularly performance-sensitive, you may want to
  stick to a manually constructed {@code TAG} string.
  
  <p>
  How you use it:
  
  <pre>
  class MyClass {
  ...
  private static final String TAG = Utility.tag(MyClass.class);
  }
  </pre>
  
  @param clazz
  The {@link Class} of the class to build a {@code TAG} string
  for
  @return Fully-qualified {@code TAG} string