Gibt es eine API, die aufgerufen werden kann, um zu überprüfen, ob das Protokoll der Informationsebene in der Java-Util-Protokollierung aktiviert ist, bevor die Protokolle tatsächlich protokolliert werden?Wie kann ich die in Java.util.logging aktivierte Info-Log-Ebene überprüfen?
Antwort
Ja, es bietet -
Logger#isLoggable(Level level)
überprüfen Sie, ob eine Meldung der gegebenen Ebene würde dieses Logger tatsächlich angemeldet sein. Diese Überprüfung basiert auf dem effektiven Level des Loggers, der von seinem Elternknoten geerbt werden kann.
Ja ist es, http://stackoverflow.com/questions/6504407/is-there-a-need -zu-tun-ein-iflog-isdebugenabled-check –
Der einzige Grund, der Sinn machen könnte: Leistungsoptimierung. Wenn die Berechnung der zu protokollierenden Zeichenkette teuer ist, dann wollen Sie vielleicht wirklich nur CPU-Zyklen für diese Berechnung ausgeben ... wenn das Ergebnis wirklich benötigt wird. – GhostCat
Auch für Optimierungszwecke ist es mit Java 8 Lambda nicht mehr nötig. Sie können einfach Ihren komplexen String wie in [diese Antwort] beschrieben erstellen (http://stackoverflow.com/a/38073371/3832347). –
Hinweis: es ist sehr sicher davon ausgehen, dass „vernünftige“ Funktionalität bereits für die meisten Komponenten besteht, die kommen „built-in“ mit Java - seit Jahren, nur weil das Zeug in Gebrauch ist, und hat manchmal viele Updates gesehen, um es "so perfekt wie möglich" zu machen. Also, ja, Fragen hier zu stellen ist nett; aber zuerst lesen javadoc, versuchen google zweitens ... ist sehr oft effizienter als das Schreiben einer SO Frage zuerst ... – GhostCat