Ich weiß, dass das OP gebeten hat, dies programmatisch zu tun, aber hier ist ein Beispiel, wie man es auch in der Eigenschaftendatei tut.
Vorbehalt: Ich dachte, es war der Aufnahme wert, da der Header nicht programmatisch angibt und viele Entwickler wollen es durch die logging.properties verwalten. Auch gibt es nicht wirklich viel Online darüber, es kann verwirrend sein und ist etwas anders, sagen wir log4j
Die Root-Protokollierungsebene wird durch die .level
Config angezeigt. Dies legt fest, welche Ereignisse standardmäßig erfasst und für die Protokollierung verteilt werden. Die root-Protokollierungsstufe ist die Ebene, die vom "root logger" in der Protokollierungshierarchie verwendet wird. Siehe this onjava article for more info on the logging hierarchy.
Im Folgenden wird die root-Protokollierungsstufe auf WARNING gesetzt, sodass normalerweise nur WARNING-Ereignisse erfasst werden. Dies wird von allen Kind-Logger in der Hierarchie geerbt, wenn Sie nichts anderes konfigurieren (später):
.level=WARNING
Diese Wurzel-Protokollebene zeigt nur das, was erfasst wird, nicht das, was ist „verteilt“. Wie ein erfasstes Ereignis (Nachricht) verteilt wird, hängt von den Handlern ab, die mit dem Logger verbunden sind. Zum Beispiel wird ein ConsoleHandler das Ereignis an die Konsole ausgeben. Zum Beispiel:
java.util.logging.ConsoleHandler.level = WARNING
Diese ConsoleHandler.level gibt die Ebene, für die sollte dieser Handler verteilen - oder Druck - die Nachricht. Wenn also eine FINE-Nachricht mit der obigen Konfiguration empfangen wird, druckt dieser Handler sie nicht. Es werden jedoch alle Nachrichten mit einer WARNING-Protokollstufe oder höher gedruckt.
auf ALLE Einstellung wird sichergestellt, dass die Console alle Meldungen auf der Konsole gedruckt wird (ein müssen wir auch die Root-Ebene konfigurieren, dass alle, um sicherzustellen, werden erfasst):
.level=ALL
java.util.logging.ConsoleHandler.level = ALL
Dies ist jedoch eine Menge schaffen würde von Lärm, den wir auch nicht wollen.Also, die FINE-Level-Ereignisse zu diesen Klassen reduzieren wir interessiert sind, ändern wir die Protokollierungsebene dieser spezifischen Logger nur:
com.level = WARNING
com.mypackage.MyClass1.level = FINE
com.mypackage.MyClass2.level = FINE
com.mypackage.mysubpackage.MyClass3.level = FINE
Beachten Sie, dass in den oben genannten, ich habe ausdrücklich die Pegel für der "com" Logger auf WARNUNG.
Grundsätzlich die gleiche Frage wie http://stackoverflow.com/questions/470430/java-util-logging-logger-doesnt-respect-java-util-logging-level. –