Es gilt unter Android als common practice, eine Konstante TAG zu definieren, die den Namen einer Klasse enthält, und bei Log-Ausgaben übergeben wird. Google macht das in seinen Beispielen oft so:

public class DigitalWatchFaceService extends CanvasWatchFaceService {

  private static final String TAG = "DigitalWatchFaceService";
  ...

Ich finde folgende Variante schöner, weil sie sich besser beim Refactoren verhält:

public class C64WatchFaceWearableConfigActivity extends Activity {

  private static final String TAG = C64WatchFaceWearableConfigActivity.class.getSimpleName();
  ...

Das Ergebnis ist dasselbe. Allerdings ist mir heute trotzdem dieses Codeschnipsel auf die Nase gefallen, wenngleich aus einem anderen Grund. Die Ausgabe auf der Konsole:

java.lang.IllegalArgumentException: Log tag "C64WatchFaceWearableConfigActivity" exceeds limit of 23 characters

Fazit: Klassennamen kurz halten.


This is a (slightly updated) repost of a piece I published on my blog Tommi’s Blog. I deleted the blog in the wake of the GDPR, so the original version is no longer available, or only through the WayBack Machine of the Internet Archive. Please note: code usually has not been updated, so language feature reflect the time the original post was written.