Ich verwende die Java-Protokollierung, um Protokollnachrichten meiner Anwendung in eine Protokolldatei und andere Ziele zu schreiben. Nachdem ich den Log-Level auf FINE
eingestellt habe, bekomme ich auch (unerwünschte) Nachrichten von AWT / Swing, wie zB:
und andere. Betrachtet man den JDK-Quellcode (siehe zB hier ), sieht man dass der Name des entsprechenden Loggers sun.awt.X11.grab.XWindowPeer
lautet.
Was ich aus dem Java-Logging-Framework verstehe, ist, dass dieser Logging-Handler seinen Loglevel von seinen Eltern wie sun.awt
erben soll.
Ich habe Folgendes versucht:
%Vor%aber die AWT / Swing-Debug-Meldungen erscheinen immer noch in der Log-Ausgabe.
Was ist der empfohlene Weg für programmgesteuert , diese Protokollmeldungen zu deaktivieren (wobei FINE
-Nachrichten aus anderen Quellen weiterhin zulässig sind)?
Wenn Sie nur die Nachrichten Ihrer eigenen Anwendung protokollieren möchten, können Sie alle Nachrichten deaktivieren und dann explizit Nachrichten für Ihre Anwendung aktivieren:
%Vor%In der Eigenschaftendatei für die Protokollierung (z. B. logging.properties) wäre dies:
%Vor%Ich hatte heute das gleiche Problem. Suche auf Google ist dies die Top-URL und ich finde keine gute Quelle für eine Antwort, so werde ich meins posten:)
Angenommen, dass Andre die java.util.logging
API verwendet, ist es möglich, ein Handler
hinzuzufügen, das das Format Ihres Protokolls mithilfe von setFormatter(Formatter newFormatter)
steuert.
Also habe ich Formatter
erweitert und überprüft, ob die Klasse des Logs java.awt, javax.swing oder sun.awt enthält.