I am trying to set my log4j.xml up so that it captures the sql queries generated by JPA. My first step was to enable JPA logging.
I did this by adding the following to my persistence.xml file....
<property name="openjpa.Log" value="openjpa.jdbc.MetaData=TRACE"/>
<property name="openjpa.Log" value="openjpa.jdbc.JDBC=TRACE"/>
<property name="openjpa.Log" value="SQL=TRACE"/>
Straight after I did that I started getting output on the console...
6032 camel TRACE [Camel (camel) thread #0 - file://src/inbox/items/] openjpa.jdbc.SQL - <t 272983323, conn 752449949> [1 ms] spent
6077 camel TRACE [Camel (camel) thread #0 - file://src/inbox/items/] openjpa.jdbc.SQL - <t 272983323, conn 1005639669> executing prepstmnt 1497874461 INSERT INTO stg_import_payload (id, FILENAME, LOAD_DATETIME, IMPORT_PAYLOAD_BODY, IMPORT_PAYLOAD_TYPE, ...
But I can't grab this output in my log files. I have something not set up correctly in log4j.xml. Appreciate if you could have a look and help out. Here are my settings...
<appender name="DatabaseLog" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/var/log/myproject/database.log"/>
<param name="MaxFileSize" value="5MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd,HH:mm:ss.SSS},%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="TRACE" />
<param name="levelMax" value="WARN" />
</filter>
</appender>
<logger name="openjpa.jdbc.SQL" additivity="false">
<appender-ref ref="DatabaseLog"/>
</logger>
<root>
<priority value="INFO" />
</root>
thanks
Thanks to the following post ...
How do I configure OpenJPA SQL logging?
which gave me a huge hint on what needed to be done I resolved this issue.
In log4j.xml i needed
<logger name="openjpa.jdbc.SQL" additivity="false">
<appender-ref ref="DatabaseLog"/>
</logger>
<category name="openjpa.jdbc.SQL">
<level value="TRACE" />
</category>
And then in persistence.xml you need to add...
<property name="openjpa.Log" value="log4j"/>