Ich habe einen Testlauf gemacht und erlebe das Gleiche. Es läuft alles auf diesen kleinen Teil der Beschreibung in der Javadoc für TimingLogger :
Wenn die Option Log.isLoggable nicht aktiviert ist nicht mindestens auf die Stufe Log.VERBOSE für dieses Tag zum Zeitpunkt der Erstellung nicht aktiviert ist, wird die addSplit- und dumpToLog-Aufrufe nichts.
Ich habe einen Test vor Ort durchgeführt:
TimingLogger timings = new TimingLogger("MyTag", "Initialization");
Log.d("MyTag", "Is Loggable? " + Log.isLoggable("MyTag", Log.VERBOSE));
timings.dumpToLog();
Und seltsamerweise erhalte ich eine Ausgabe in das Protokoll:
06-28 08:35:18.693: DEBUG/MyTag(24366): Is Loggable? false
Aber das war's auch schon. Und da es falsch ist, bezweifle ich, dass TimingLogger irgendetwas tut, basierend auf dem TimingLogger-Code :
90 /**
91 * Clear and initialize a TimingLogger object that will log using
92 * the tag and label that was specified previously, either via
93 * the constructor or a call to reset(tag, label). If the
94 * Log.isLoggable is not enabled to at least the Log.VERBOSE
95 * level for that tag at creation time then the addSplit and
96 * dumpToLog call will do nothing.
97 */
98 public void reset() {
99 mDisabled = !Log.isLoggable(mTag, Log.VERBOSE);
100 if (mDisabled) return;
101 if (mSplits == null) {
102 mSplits = new ArrayList<Long>();
103 mSplitLabels = new ArrayList<String>();
104 } else {
105 mSplits.clear();
106 mSplitLabels.clear();
107 }
108 addSplit(null);
109 }
Ich bin nicht sicher, warum Log.isLoggable false zurückgibt, wenn es offensichtlich bei über VERBOSE protokolliert, da meine Log.d offensichtlich protokolliert.
Sie können die Protokollierung für dieses Tag manuell in der [Log class Javadoc][3] aktivieren:
Sie können die Standardstufe ändern, indem Sie eine Systemeigenschaft setzen: 'setprop log.tag. ' Wobei Level entweder VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, oder SUPPRESS. SUPPRESS schaltet die gesamte Protokollierung für Ihr Tag. Sie können auch eine local.prop-Datei erstellen, die mit dem folgenden Eintrag enthält: 'log.tag.=' und platzieren Sie diese in /data/local.prop.
Das habe ich durch adb shell
:
$ adb shell
# setprop
usage: setprop <key> <value>
# setprop log.tag.MyTag VERBOSE
#
Ergebnisse in:
06-28 08:53:42.447: DEBUG/MyTag(24739): Is Loggable? true
06-28 08:53:44.744: DEBUG/MyTag(24739): Initialization: begin
06-28 08:53:44.744: DEBUG/MyTag(24739): Initialization: end, 0 ms
Siehe den Kommentar von droidgren zu dieser Antwort - offenbar ist auch ein Aufruf von addSplit erforderlich.
[3]: [http://developer.Android.com/reference/Android/util/Log.html#isLoggable(java.lang.String](http://developer.android.com/reference/android/util/Log.html#isLoggable(java.lang.String) , int)