4

我已经将我的应用程序部署到 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 实现才能使日志记录正常工作?如果是这样,这似乎相当草率。

4

1 回答 1

12

在我看来,了解 OpenJPA 在 WebSphere v7 中的幕后工作的唯一方法是在管理控制台中启用跟踪。

为了在管理控制台中激活 OpenJPA 跟踪,导航到故障排除 - 日志和跟踪 - [您的服务器] - 诊断跟踪。在配置页面上,单击右侧的“更改日志详细信息级别”。展开组件树并选择 OpenJPA 日志详细级别输入

*=info: openjpa.Query=all: openjpa.jdbc_JDBC=all: openjpa.jdbc_SQL=all

进入文本字段。单击“确定”,然后单击“保存”。您必须重新启动服务器。

于 2011-04-08T09:57:27.770 回答