2012-03-29 10 views
5

Ich habe eine eingebettete Hsqldb in meinem Projekt eingerichtet. Aber es Dumps eine Menge Informationen über den Ausgang bei der Arbeit, und ich zur Zeit nicht braucht, dass Informationen:Gibt es eine Möglichkeit, hsqldb Protokollierung zum Schweigen zu bringen?

Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent 
INFO: Checkpoint start 
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent 
INFO: checkpointClose start 
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent 
INFO: checkpointClose end 
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent 
INFO: Checkpoint end 

Gibt es eine Möglichkeit, dass die Ausgabe zum Schweigen zu bringen?

+0

möglich Duplikat [hsqldb mit meinem server's Protokolle vermasselt] (http : //stackoverflow.com/questions/5969321/hsqldb-messing-up-with-my-servers-logs) – fglez

Antwort

4

Leider glaube ich nicht so. Wir haben das gleiche Problem in unserem Projekt. Ich glaube, ich habe die Quelle zu einem bestimmten Zeitpunkt überprüft und festgestellt, dass hsqldb keine Möglichkeit bietet, diese Protokollierung zu beeinflussen.

Ich stehe korrigiert (wie @fredt in seinem Kommentar zu der anderen Antwort erwähnt), können Sie diese Protokollierung über die jdk Log-Ebenen steuern. Wenn Sie den Protokollpegel "hsqldb.db" auf etwa WARNING setzen, wird diese Ausgabe unterdrückt. Sie können dies mithilfe der Datei logging.properties oder programmgesteuert (nach dem Laden von hsqldb) tun, indem Sie etwas wie Logger.getLogger("hsqldb.db").setLevel(Level.WARNING) verwenden (vorausgesetzt, Sie verwenden java util logging).

Wie im Kommentar unten erwähnt, setzt hsqldb auch die Java-Logging-Konfiguration zurück. Wenn Sie es in eine andere Anwendung einbetten, sollten Sie diese Funktionalität möglicherweise deaktivieren, indem Sie die Systemeigenschaft "hsqldb.reconfig_logging" auf "false" setzen (, bevor hsqldb geladen wird).

+0

Ich habe versucht, die vorgeschlagene Optimierung, aber INFO-Nachrichten weiterhin nach einem bestimmten Punkt in meiner Anwendung angezeigt, bis ich auch 'System hinzugefügt .setProperty ("hsqldb.reconfig_logging", "false"); 'am Anfang meines Codes. (Ich fand diese Systemeigenschaft in der HSQLDB-Dokumentation über den Link in Freds Kommentar zu der anderen Antwort.) –

+1

@GordThompson heh, ja, hsqldb versucht auch Besitzrechte über die Java Logging Konfiguration zu beanspruchen, also musst du das deaktivieren. aktualisierte meine Antwort. – jtahlborn

0

Für alle, die nach einer Befehlszeilenlösung suchen.

Ihre app/Server mit einer Eigenschaft auf die Lage eines speziellen Eigenschaften Starten zeigt Datei:

-Djava.util.logging.config.file =/location/of/your/hsqldblog.properties“ .

, die die folgende Zeile enthält HSQLDB für Java-Protokollierung zu ändern

# Change hsqldb logging level 
org.hsqldb.persist = WARNING 

Randnotiz, können Sie aus den folgenden Stufen zur Verfügung:

SCHWEREN WARNUNG INFO CONFIG FINE FINER FINEST

More info on Java Logging

0

Für SLF4J + Logback Benutzer:

log4j-over-slf4j hinzufügen als eine Abhängigkeit (vergessen Sie nicht ausschließen Original log4j Abhängigkeit wenn hast du welche). Wenn Sie Gradle verwenden, fügen Sie so etwas wie dies in Ihre build.gradle:

runtime group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.25' 

Dann fügen Sie diese zu Ihrem logback.xml:

<logger name="hsqldb.db" level="warn"/> 
Verwandte Themen