我已经将我的应用程序部署到 WebSphere Application Server 7,它使用应用程序服务器中的默认 OpenJPA 1.2.2 库,但是,我无法让它记录,我在我的 persistence.xml 中有这个
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="SvcsLogic" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>jdbc/mydatasource</jta-data-source>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="openjpa.log" value="log4j, DefaultLevel=TRACE" />
<property name="openjpa.Log" value="log4j, DefaultLevel=TRACE" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(SchemaAction='add',foreignKeys=true)" />
</properties>
</persistence-unit>
</persistence>
但是,它将忽略我希望它使用 log4j 记录的事实,即使我删除了 log4j 设置,它也不会修改 WAS 的 Logs and Trace 中的记录通道。我已将所有内容都设置为记录所有内容以确保它不起作用。
JPA Logging 上的 WAS 信息中心文档说,但是避免麻烦:如果“openjpa.Log”属性是在使用应用程序服务器提供的持久性提供程序的容器管理的持久性单元中定义的,它将被忽略。在这种情况下,您必须使用应用程序服务器的标准跟踪规范。
这是否意味着我必须更改我的 JPA 实现才能使日志记录正常工作?如果是这样,这似乎相当草率。