2016-11-22 2 views
1

Also, mein Problem ist:Kann ORMLites Logging nicht deaktivieren

Ich muss ORMLites Logging deaktivieren.

Ich habe bereits versucht

System.setProperty(LocalLog.LOCAL_LOG_LEVEL_PROPERTY, "ERROR"); 

Auf einer JavaFX Anwendung arbeitete diese. Aber jetzt habe ich ein Konsolenprogramm, wo dies nicht funktionieren will ... Erste Theorie, die ich habe, ist:

Ich benutze eine separate Logger mit einem FileHandler. Stört das vielleicht LocalLog? Das Einstellen der Eigenschaft funktioniert, aber das ändert nichts an der Ausgabe.

Edit: In Bezug auf Unterschiede zwischen den beiden Projekten:

Ich benutze commons im nicht-FX-Projekt anzumelden. Könnte dies der Grund sein, warum es nicht funktioniert? (Ich benutze es, weil die Gemeinen csv und commons Konfiguration ... nicht für die Protokollierung)

+0

So -Dcom.j256.ormlite.logger.level = FEHLER funktioniert nicht vom Befehl lin e? – Gray

+0

Wenn Sie einen separaten "Logger" sagen, was meinen Sie? slf4j oder etwas? – Gray

+0

Nein, nur der übliche util.logging Logger. Aber ich benutze einen Logger über (Logger.getLogger (hereHaveClassname); Ich werde den Parameter testen. –

Antwort

1

Ich verwende einen separaten Logger mit einem FileHandler. Stört das vielleicht LocalLog? Das Einstellen der Eigenschaft funktioniert, aber das ändert nichts an der Ausgabe.

ORMLite versucht, andere Protokollierungsbibliotheken zu erkennen und zu verwenden, sofern verfügbar. Ich vermute, dass es eine andere Protokollierungsimplementierung findet und verwendet. Sie können ihn zwingen, einen Logger zu verwenden, jedoch mit:

System.setProperty("com.j256.ormlite.logger.type", "LOCAL"); 

oder

-Dcom.j256.ormlite.logger.type=LOCAL 

Dann können Sie die Log-Level-Set mit:

System.setProperty("com.j256.ormlite.logger.level", "ERROR"); 

oder

-Dcom.j256.ormlite.logger.level=ERROR 
1

Ok, ich die Schuldigen gefunden:

Apache Commons Logging irgendwo ein Problem zu verursachen scheint .... nicht sicher, warum, aber das Entfernen löste das Problem. Wenn Gray eine Erklärung dafür hat, werde ich seine Antwort als die gelöste markieren. Aber jetzt habe ich mein Problem gelöst.

EDIT: Wenn Sie noch commons.logging für Ihre Anwendung benötigen, arbeiten können Sie verwenden:

System.setProperty("org.apache.commons.logging.Log", 
    "org.apache.commons.logging.impl.NoOpLog"); 

Diese entfernt alle Nachrichten aus ORMLite.

Verwandte Themen