在WAS 7上部署时,OpenJPA不记录日志

时间:2010-11-03 16:30:40

标签: logging websphere openjpa

我已经将我的应用程序部署到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“日志和跟踪”中的日志记录通道。我已将它设置为记录所有内容以确保,但它不起作用。

The WAS Infocenter doc on JPA Logging说,但避免麻烦:如果在使用应用程序服务器提供的持久性提供程序的容器管理持久性单元中定义“openjpa.Log”属性,则将忽略该属性。在这种情况下,您必须使用应用程序服务器的标准跟踪规范。

这是否意味着我必须更改我的JPA实现才能使日志记录正常工作?如果是这样,这似乎相当草率。

1 个答案:

答案 0 :(得分:12)

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

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

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

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