LoggingUtilsImpl.java
package androidx.wear.protolayout.renderer.common;
import android.content.ComponentName;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import com.google.errorprone.annotations.FormatMethod;
import com.google.errorprone.annotations.FormatString;
/**
* Logger used for extensive logging. Note that all logs will contain the component name. To enable
* logs use the following command:
*
* <pre>
* adb shell setprop log.tag.class_tag DEBUG
* </pre>
*/
@RestrictTo(Scope.LIBRARY_GROUP_PREFIX)
public class LoggingUtilsImpl implements LoggingUtils {
@NonNull private final ComponentName mComponent;
public LoggingUtilsImpl(@NonNull ComponentName component) {
this.mComponent = component;
}
@Override
public void logD(@NonNull String tag, @NonNull String message) {
logInternal(tag, message);
}
@Override
@FormatMethod
public void logD(
@NonNull String tag,
@NonNull @FormatString String format,
@NonNull Object... args) {
logD(tag, String.format(format, args));
}
private void logInternal(@NonNull String tag, @NonNull String message) {
if (canLogD(tag)) {
Log.d(tag, "Logs for: " + mComponent + "\n" + message);
}
}
@Override
public boolean canLogD(@NonNull String tag) {
return Log.isLoggable(tag, Log.DEBUG);
}
}