Hi zusammen,
ich stehe gerade vor einem Problem: Zwar funktioniert Hibernate mit Glassfish bei mir, allerdings möchte ich mir gerne die Statements auf der Konsole ausgeben und in eine Log-Datei speichern. Das Ganze soll automatisch geschehen, d.h. kein Logging-Code innerhalb der Beans sollten dafür notwendig sein.
Für den gesamten Logging-Mechanismus möchte ich gerne log4j verwenden und habe diesbezüglich eine log4j.xml wie folgt angelegt:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Ausgabe in die Konsole -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- Ausgabe in eine Datei -->
<appender name="file" class="org.apache.log4j.FileAppender">
<param name="file" value="../logs/console.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- Ausgabe in eine Fehlerdatei -->
<appender name="errorfile" class="org.apache.log4j.FileAppender">
<param name="file" value="../logs/error.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t %C:%M:%L] %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="error" />
<param name="LevelMax" value="fatal" />
</filter>
</appender>
<!-- Nachrichtenversand bei fatalen Fehlern -->
<appender name="mail" class="org.apache.log4j.net.SMTPAppender">
<param name="SMTPHost" value="smtp.myservername.xx" />
<param name="From" value="email@fromemail.xx" />
<param name="To" value="toemail@toemail.xx" />
<param name="Subject" value="[FATAL] ..." />
<param name="BufferSize" value="1" />
<param name="threshold" value="fatal" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t %C:%M:%L] %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="com.mypackage">
<level value="${log.level.gls}"/>
<appender-ref ref="console" />
<appender-ref ref="file" />
<appender-ref ref="errorfile" />
</logger>
<root>
<priority value="${log.level.global}" />
<appender-ref ref="console" />
<appender-ref ref="file" />
<appender-ref ref="errorfile" />
</root>
<category name="org.hibernate.sql">
<priority value="info" />
</category>
<category name="org.hibernate.type">
<priority value="info" />
</category>
</log4j:configuration>
Wenn ich nun in meiner Anwendung Aktionen auf die Datenbank ausführe, werden weder die Hibernate-Statements weder auf der Konsole, noch in die server.log, geloggt.
Das log4j.jar ist auch eingebunden und beim Start des Servers kommt es auch zur keiner Warnung bezüglich der fehlenden Initialisierung des Log4J-Systems.
Weiß jemand, welche Einstellungen ich hierbei noch machen muss? Muss man vielleicht die domain.xml anfassen?
Wenn ja, welche Einträge müssen dort gemacht werden?
Vielen Dank im Voraus.
ich stehe gerade vor einem Problem: Zwar funktioniert Hibernate mit Glassfish bei mir, allerdings möchte ich mir gerne die Statements auf der Konsole ausgeben und in eine Log-Datei speichern. Das Ganze soll automatisch geschehen, d.h. kein Logging-Code innerhalb der Beans sollten dafür notwendig sein.
Für den gesamten Logging-Mechanismus möchte ich gerne log4j verwenden und habe diesbezüglich eine log4j.xml wie folgt angelegt:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Ausgabe in die Konsole -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- Ausgabe in eine Datei -->
<appender name="file" class="org.apache.log4j.FileAppender">
<param name="file" value="../logs/console.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- Ausgabe in eine Fehlerdatei -->
<appender name="errorfile" class="org.apache.log4j.FileAppender">
<param name="file" value="../logs/error.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t %C:%M:%L] %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="error" />
<param name="LevelMax" value="fatal" />
</filter>
</appender>
<!-- Nachrichtenversand bei fatalen Fehlern -->
<appender name="mail" class="org.apache.log4j.net.SMTPAppender">
<param name="SMTPHost" value="smtp.myservername.xx" />
<param name="From" value="email@fromemail.xx" />
<param name="To" value="toemail@toemail.xx" />
<param name="Subject" value="[FATAL] ..." />
<param name="BufferSize" value="1" />
<param name="threshold" value="fatal" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t %C:%M:%L] %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="com.mypackage">
<level value="${log.level.gls}"/>
<appender-ref ref="console" />
<appender-ref ref="file" />
<appender-ref ref="errorfile" />
</logger>
<root>
<priority value="${log.level.global}" />
<appender-ref ref="console" />
<appender-ref ref="file" />
<appender-ref ref="errorfile" />
</root>
<category name="org.hibernate.sql">
<priority value="info" />
</category>
<category name="org.hibernate.type">
<priority value="info" />
</category>
</log4j:configuration>
Wenn ich nun in meiner Anwendung Aktionen auf die Datenbank ausführe, werden weder die Hibernate-Statements weder auf der Konsole, noch in die server.log, geloggt.
Das log4j.jar ist auch eingebunden und beim Start des Servers kommt es auch zur keiner Warnung bezüglich der fehlenden Initialisierung des Log4J-Systems.
Weiß jemand, welche Einstellungen ich hierbei noch machen muss? Muss man vielleicht die domain.xml anfassen?
Wenn ja, welche Einträge müssen dort gemacht werden?
Vielen Dank im Voraus.