Hibernate: wie passen Sie die standardmäßige Protokollierungsebene (SJF4J und JDK 1.4 logger)?
Ich habe eine JavaSE/Hibernate-test-app (shell-basiert). Ich lege die folgenden jar-Dateien in das Projekt lib-dir:
antlr-2.7.6.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
Wie Sie sehen können, bin ich mit SLF4J mit dem JDK 1.4 logger. Wenn ich meine test-app aus der Schale, Hibernate ist sehr ausführlich, weil er auf die INFO-Ebene standardmäßig:
09.12.2010 02:23:14 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.2.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.6.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
09.12.2010 02:23:14 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
09.12.2010 02:23:14 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.6.0.Final
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Game
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Game on table Games
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Roster
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Roster on table Rosters
.
.
.
Wie regle ich das mit Hibernate logging-level, zu sagen: WARNUNG?
EclipseLink zum Beispiel lassen Sie uns geben Sie die Ebene über eine Eigenschaft (persistence.xml):
<property name="eclipselink.logging.level" value="INFO" />
<property name="eclipselink.logging.level.sql" value="FINE" />
Gibt es ein äquivalent in den Ruhezustand?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde immer lieber zu konfigurieren, der logging-framework mit einer zentralen Konfigurations-Datei anstelle von mehreren spezifischen Protokollierung Einstellungen von Bibliotheken, denn das ist einer der Gründe für die Verwendung eines logging-framework überhaupt.
Hibernate scheint Folgen, die Philosophie, und da sind Sie mit dem JDK logging nur Konfiguration der Protokoll-Ebene mit einer property-Datei.
In meiner Anmeldung.properties-Datei, die ich eingestellt:
Der einfachste Weg zu stoppen, hibernate, dass Sie so ausführlich ist das hinzufügen
log4j-over-slf4j.jar
Ihren Klassenpfad ein. Das ist, weil hibernate verwendet log4j für das logging und, wenn Sie hinzufügen, dass alle jar die Protokollierung intentend gehen durch log4j umgeleitet werden slf4j.