Wie bekomme ich mehr debug-Meldungen aus dem Ruhezustand?
Ich habe nicht in der Lage zu bekommen, eine weitere Ausgabe in der Konsole (Debuggen) aus dem Ruhezustand trotz ein paar Eigenschaften in der hibernate.cfg.xml
- Datei. Zum Beispiel, durch hinzufügen der Zeile <property name="show_sql">true</property>
nicht, in der Tat, zeigen Sie SQL-Anweisungen in der Konsole.
Ich habe auch versucht zu spielen, um mit dem Inhalt der log4j.properties
Datei - wie Einstellung log4j.logger.org.hibernate=debug
- ohne Glück. Was bin ich?
Edit: den Inhalt der hibernate-service.xml Datei
<server>
<mbean code="org.jboss.hibernate.jmx.Hibernate"
name="jboss.har:service=Hibernate_SMS">
<attribute name="DatasourceName">java:/SMS_DS</attribute>
<attribute name="Dialect">org.hibernate.dialect.HSQLDialect</attribute>
<attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>
<attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
<attribute name="ShowSqlEnabled">true</attribute>
</mbean>
</server>
Bin ich mir nicht 100% sicher, ob dies tatsächlich einen Effekt, wenn. Diese XML-Datei wird in das Eclipse-Projekt, dass meine Griffe Datenbank Sachen, aber scheint nicht zu sein, in das JBoss-deploy-Verzeichnis.
Edit 2: Dies ist definitiv der Bereitstellung als ein HAR. Das heißt, ich bin mir ziemlich sicher, dass ich brauchen hibernate.cfg.xml
- ich erinnere mich an Probleme, wenn eine mapping-Dokument weggelassen wurde, wie ein Eintrag in dieser Datei. Ich denke, die HAR erzeugt wird mit Hilfe des ant - es gibt ein Ziel für das es in der build.xml Datei:
<target name="har" depends="prepare" description="Builds the Hibernate HAR file">
<mkdir dir="${class.root}" />
<mkdir dir="${distribution.dir}" />
<jar destfile="${distribution.dir}/${har.name}">
<!-- include the hbm.xml files -->
<fileset dir="${class.root}">
<include name="**/*.hbm.xml"/>
<include name="com/[redacted]/sms/data/dto/*.class"/>
<include name="com/[redacted]/sms/data/dto/base/*.class"/>
</fileset>
<!-- include jboss-service.xml -->
<metainf dir="${hibernate.dir}">
<include name="hibernate-service.xml"/>
</metainf>
</jar>
</target>
aber wenn ich den ant-build-mit falsch-geformten xml in der hibernate-service.xml Datei, die es nicht scheitern. Update Auch das löschen der Datei vollständig nicht dazu führen, dass ein build fehlschlägt. Irgendwelche Ideen hier? End Update
Klingt es wie immer Ruhezustand, um die Ausgabe von SQL-Anweisungen sollten (wenn alles korrekt eingerichtet ist) kümmern sich um Sie ganz - heißt das, dass die Einstellungen in log4j.Eigenschaften wird nicht einen Unterschied machen hier? - weil das eigentlich hat ändern Sie die Ausgabe beim ausführen von ant.
Edit 3: Nach laufen in die andere komische Probleme mit meinen Daten har
ich gelöscht, die har-Datei vollständig und baute es mit Hilfe der har
ant-build-target. Plötzlich alles funktioniert! Dank chessplay für seine unglaubliche Hilfsbereitschaft. Kann ich nicht sagen, ich weiß genau, was hat es am Ende, aber ich würde lieber für seine Bemühungen anerkennen als schreiben, und akzeptieren Sie meine Antwort; ich bitte um Entschuldigung, wenn Sie nicht ein "er".
hibernate.show_sql
(oderShowSqlEnabled
in der JBoss mbean) ist unabhängig von der Protokollierung-Konfiguration; wenn aktiviert, wird es immer gedruckt SQL-Konsole. Einstellungorg.hibernate.SQL=DEBUG
im entsprechenden logger-Konfiguration wird das gleiche tun, aber was auch immer die Ausgabe konfiguriert ist, für den logger. Beide Methoden sind unabhängig von einander (z.B. wenn Sie beide erhalten Sie sql-zweimal gedruckt werden)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die richtige Eigenschaft name hibernate.show_sql und es funktioniert definitiv.
Stellen Sie sicher, dass Ihre
hibernate.cfg.xml
die richtige ist, und es wird immer abgeholt; dasselbe gilt für Ihrelog4j.properties
- Datei. Ich weiß, dass diese scheinen, wie dumme Vorschläge, aber auf Sie entfallen 98% der "fehlenden logging-Ausgabe" Probleme.Update: ich werde zu aktualisieren, die Antwort eher, als zu halten das hinzufügen von Kommentaren.
Sie müssen sicherstellen, dass Ihre
hibernate-service.xml
abgeholt wird von JBoss. Der einfache Weg zu überprüfen ist, um eine syntax-Fehler (wie z.B. das auslassen einer schließenden Klammer, die auf ein element) und sehen, ob JBoss explodiert beim Neustart 🙂 Es sollte verpackt sein inhar
eingesetzt und als Teil der build-Prozess, so dass, wenn Sie erkennen, dass es nicht wird abgeholt von JBoss, das ist der Ort, um zu schauen. Ich würde loszuwerden widersprüchliche Einstellungen inhibernate.cfg.xml
(z.B. alles was man angeben, wie die mbean-Attribute sollten nicht repliziert werden, inhibernate.cfg.xml
). Für diese Angelegenheit, Sie müssen sogarhibernate.cfg.xml
? Wenn eingesetzt alsHAR
, Ihre mappings automatisch gescannt /abgeholt.org.hibernate.SQL
log-level auf DEBUG um es zu lenken, um die log-Datei Ihrer Wahl (entsprechend der Konfiguration in Ihre logging-Konfiguration)<property name="hibernate.show_sql">true</property>
aber immer noch nichts. :\ShowSqlEnabled
- Attribut auf Ihre mbean, um wahr zu drucken, sql-Konsole an (z.B.<attribute name="ShowSqlEnabled">true</attribute>
).Ich habe gerade mit der log4j.Eigenschaften-Datei log-Hibernate-statements. Für SQL-Anweisungen, die log4j.logger.org.hibernate.SQL - Eigenschaft muss festgelegt werden, debug, und für die SQL-Parameter/Rückgabewerte, die log4j.logger.org.hibernate.geben Sie - Eigenschaft muss festgelegt werden, trace.
Hier ist die log4j.properties-Datei, die ich benutze:
log4j.properties
Datei scheint nicht zu beeinflussen die Ausgabe der console wenn JBoss tatsächlich ausgeführt wird. Es scheint jedoch zur Kontrolle der Ausgangspegel, wenn ich mein ant-build-Skript.Hinaus vergewissere dich, ob die richtigen log4j-Konfiguration.
Beim laufen in jboss (Ihr macht das, richtig?), konfigurieren Sie die log4j-Protokollierung in
$JBOSS_HOME/server/<config>/conf/jboss-log4j.xml
.Gibt es zwei Standard-appenders;
FILE
schreibtlog/server.log
undCONSOLE
zustdout
(manchmal umgeleitetlog/console.log
). Einstellen des Schwellenwerts auf den appender aufDEBUG
in der Datei oder indem Sie die systempropertyjboss.server.log.threshold
(hängt davon ab, welche version von jboss verwenden, die Sie verwenden).Wirst du auch anpassen müssen, um die Protokollierung Priorität von hibernate durch das hinzufügen einer Kategorie: