Ich konnte trotz der Einstellung einiger Eigenschaften in der hibernate.cfg.xml
-Datei keine Konsolenausgabe (um Debugging zu unterstützen) mehr aus Hibernate herausholen. Wenn Sie beispielsweise die Zeile <property name="show_sql">true</property>
hinzufügen, werden in der Tat keine SQL-Anweisungen in der Konsole angezeigt.
Ich habe auch versucht, mit dem Inhalt der log4j.properties
-Datei - wie Einstellung log4j.logger.org.hibernate=debug
- ohne Glück herumzuspielen. Was vermisse ich?
Bearbeiten: Der Inhalt der Datei hibernate-service.xml ist
%Vor%Ich bin mir nicht 100% sicher, ob das tatsächlich irgendeinen Effekt hat. Diese XML-Datei befindet sich im Eclipse-Projekt, das meine Datenbankdaten verarbeitet, scheint aber nicht im JBoss-Bereitstellungsverzeichnis enthalten zu sein.
Edit 2: Dies wird definitiv als HAR bereitgestellt. Das heißt, ich bin mir ziemlich sicher, dass ich hibernate.cfg.xml
brauche - ich erinnere mich, Probleme zu haben, als ein Mapping-Dokument als Eintrag in dieser Datei ausgelassen wurde. Ich denke, die HAR wird mit Hilfe von ant generiert - in der Datei build.xml gibt es ein Ziel dafür:
Aber wenn ich das Ameisen-Build mit falsch formiertem xml in der Datei hibernate-service.xml mache, schlägt es nicht fehl. Aktualisieren Auch wenn Sie die Datei vollständig löschen, führt dies nicht dazu, dass ein Build fehlschlägt. Irgendwelche Ideen hier? Aktualisierung beenden
Es klingt so, als würde Hibernate SQL-Anweisungen ausgeben, sollte (wenn alles korrekt eingerichtet ist) sich darum kümmern - bedeutet das, dass die Einstellungen in log4j.properties hier keinen Unterschied machen? - weil das tatsächlich die Ausgabe beim Ausführen von ant ändert.
Bearbeiten 3: Nachdem ich mit meinen Daten har
auf andere seltsame Probleme gestoßen bin, habe ich die har-Datei komplett gelöscht und sie mit dem Build-Ziel har
am neu erstellt. Plötzlich funktioniert alles! Danke an das Schachspiel für seine großartige Hilfsbereitschaft. Kann nicht sagen, dass ich genau weiß, was es am Ende getan hat, aber ich würde eher seine Bemühungen anerkennen, als zu schreiben und meine eigene Antwort zu akzeptieren; Ich entschuldige mich, wenn Sie kein "er" sind.
Der korrekte Name der Eigenschaft lautet hibernate.show_sql und es funktioniert definitiv.
Stelle sicher, dass dein hibernate.cfg.xml
der richtige ist und dass es abgeholt wird; Gleiches gilt für Ihre log4j.properties
-Datei. Ich weiß, dass diese wie dumme Vorschläge erscheinen, aber sie machen 98% der "fehlenden Logging-Ausgaben" aus.
Aktualisieren : Ich werde die Antwort aktualisieren, anstatt weitere Kommentare hinzuzufügen.
Sie müssen sicherstellen, dass Ihr hibernate-service.xml
von JBoss übernommen wird. Der einfache Weg zu überprüfen ist, einen Syntaxfehler hinzuzufügen (wie eine schließende geschweifte Klammer auf einem Element wegzulassen) und zu sehen, ob JBoss während des Neustarts explodiert :-) Es sollte in har
verpackt und als Teil Ihres Build-Prozesses bereitgestellt werden Wenn du also feststellst, dass nicht von JBoss abgeholt wird, solltest du genau hinschauen. Ich würde die widersprüchlichen Einstellungen in hibernate.cfg.xml
loswerden (z. B. würde alles, was Sie angeben, als mbean-Attribute nicht in hibernate.cfg.xml
repliziert werden). Brauchen Sie sogar hibernate.cfg.xml
? Wenn sie als HAR
bereitgestellt werden, sollten Ihre Zuordnungen automatisch gescannt / abgeholt werden.
Ich verwende einfach die Datei log4j.properties, um Hibernate-Anweisungen zu protokollieren. Für SQL-Anweisungen muss die Eigenschaft log4j.logger.org.hibernate.SQL auf debug und für SQL-Parameter / zurückgegebene Werte auf log4j.logger gesetzt werden Die Eigenschaft .org.hibernate.type muss auf trace festgelegt werden.
Hier ist die Datei log4j.properties, die ich verwende:
%Vor%Stellen Sie sicher, dass Sie die richtige log4j-Konfiguration verwenden.
Wenn Sie in jboss laufen (Sie tun das, oder?), konfigurieren Sie log4j-logging in $JBOSS_HOME/server/<config>/conf/jboss-log4j.xml
.
Es gibt zwei Standard-Appender; FILE
schreibt nach log/server.log
und CONSOLE
nach stdout
(manchmal umgeleitet log/console.log
). Passen Sie den Schwellenwert für den Appender an DEBUG
in der Datei an oder setzen Sie die Systemproperty jboss.server.log.threshold
(hängt davon ab, welche Version von jboss Sie verwenden).
Sie müssen außerdem die Protokollierungspriorität des Ruhezustands anpassen, indem Sie eine Kategorie hinzufügen:
%Vor%