转自:http://hi.baidu.com/f1jee/blog/item/6ef95df497efe965dcc4744c.html
OpenJPA最值得关注的特性就是它贯穿了插件(Plugin)的思想,这使得OpenJPA的扩展性更强。对于日志的配置,OpenJPA不仅有其自己的实现,也有Log4J、Apache Commons Logging和自定义的日志处理。
OpenJPA中配置日志的属性如下所示。
(1)属性名:openjpa.Log
描述:配置日志属性,对应配置的API为 org.apache.openjpa.conf.OpenJPAConfiguration. getLog。
可选值:
— openjpa:OpenJPA默认的日志实现。
— commons:Apache Commons Logging日志实现。
— log4j:Log4J的日志实现。
— none:禁用日志。
示例:禁用日志
<property name=" openjpa.Log " value="none "/>
(2)日志类别
同Hibernate的日志处理相似,OpenJPA也将日志的信息进行了分类,这些类别如表14-4所示。
表14-4 OpenJPA实现日志类别
属性名
|
描 述
|
openjpa.Tool
|
由OpenJPA命令行工具、Ant工具输出的信息
|
openjpa.Enhance
|
由OpenJPA的强化机制,在转换类时输出的信息
|
openjpa.MetaData
|
生成OR映射时输出的信息
|
openjpa.Runtime
|
运行时输出的信息
|
openjpa.Query
|
执行查询时输出的信息
|
openjpa.DataCache
|
使用缓存时输出的信息
|
openjpa.jdbc.JDBC
|
JDBC连接数据库时的信息
|
openjpa.jdbc.SQL
|
输出的SQL信息
|
示例:打印SQL日志
<property name="openjpa.Log" value="SQL=TRACE"/>
其中,TRACE为日志的级别,OpenJPA的日志级别从低到高分别是TRACE、INFO(默认)、WARN、ERROR和FATAL。
如果要打印出格式化后的SQL,可以对属性“openjpa.ConnectionFactoryProperties”进行配置,代码如下:
<property name="openjpa.Log" value="SQL=TRACE"/>
<property name="openjpa.ConnectionFactoryProperties"
value="PrettyPrint=true, PrettyPrintLineLength=72"/>
其中,PrettyPrint=true表示格式化输出SQL,PrettyPrintLineLength=72表示默认的一行为72个字符长度。
(3)openjpa.Log的值可以由以下4部分组成,配置的每个部分用逗号分隔。
— File:可以指定日志保存的文件。
— DefaultLevel:日志默认的级别。
— DiagnosticContext:在所输出的日志前增加诊断信息。
— <channel>:日志类别,如表14-4所示。
示例一:标准的日志配置
<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO"/>
示例二:标准的日志配置和所有的SQL日志
<property name="openjpa.Log"
value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
示例三:标准的日志配置同时保存到指定文件中
<property name="openjpa.Log"
value="File=/tmp/org.apache.openjpa.log,DefaultLevel=WARN,Runtime=INFO, Tool=INFO"/>
(4)配置Log4J
当日志使用 Log4J时,需要在log4j.properties中配置日志,例如log4j.properties的配置如下所示。
log4j.rootCategory=WARN, console
log4j.category.openjpa.Tool=INFO
log4j.category.openjpa.Runtime=INFO
log4j.category.openjpa.Remote=WARN
log4j.category.openjpa.DataCache=WARN
log4j.category.openjpa.MetaData=WARN
log4j.category.openjpa.Enhance=WARN
log4j.category.openjpa.Query=WARN
log4j.category.openjpa.jdbc.SQL=WARN
log4j.category.openjpa.jdbc.JDBC=WARN
log4j.category.openjpa.jdbc.Schema=WARN
log4j.appender.console=org.apache.log4j.ConsoleAppender
另外,OpenJPA的日志还可以使用JDK自带的日志实现和自定义的日志,这里不详细介绍,请读者参阅相关的文档。
分享到:
相关推荐
然后,在Spring的配置文件(如applicationContext.xml)中声明OpenJPA的数据源、实体管理和事务管理器。 2. **实体类定义** 定义与数据库表对应的Java实体类,使用JPA的注解如@Entity、@Table、@Id等来描述实体...
同时,注意在开发过程中,OpenJPA的日志可以帮助你调试和优化,你可以通过配置控制台输出或日志文件来查看相关信息。 总之,Spring与OpenJPA的结合为Java开发者提供了一个强大且灵活的持久层解决方案,使得我们能够...
为了调试和优化,OpenJPA提供了详细的日志功能,可以通过配置log4j.properties文件来控制日志级别和输出。这对于理解和优化OpenJPA的行为非常有帮助。 最后,记得在部署应用到WebSphere之前,进行适当的测试。可以...
首先,需要在Spring配置中定义数据源、OpenJPA实体管理和事务管理器。然后,通过@Autowired注解将实体管理器注入到需要的地方,如服务层。这样,我们就可以在控制器中直接调用服务层的方法,进行CRUD操作,OpenJPA会...
8. `openjpa.Log`: 日志配置,用于控制OpenJPA的日志级别和输出。 在代码部分,可以看到一个名为`DAOServices`的抽象类,它使用了静态变量来管理`EntityManager`。`EntityManagerFactory`是用于创建`EntityManager`...
Hibernate之外,还有其他实现了JPA规范的框架,比如OpenJPA、TopLink等。开发者可以根据项目需求选择不同的JPA实现,而SpringDataJPA就是在此之上提供了一层抽象,即Repository层的实现,进一步简化了持久层的代码...
在Java开发中,Spring框架和Java ...不过,实际项目中还可能需要其他依赖,例如Spring的AOP、ORM、Web模块等,以及数据库特定的驱动和JPA的其他实现(如EclipseLink或OpenJPA),具体依赖于项目的需求和配置。
- 配置JPA提供者,如OpenJPA或Hibernate,通过`persistence.xml`文件。 - 实现ORM(对象关系映射),定义实体类,使用注解如`@Entity`, `@Table`, `@Id`等。 10. **WebSocket支持** - 开发WebSocket应用,使用`@...
5. **OpenJPA**:OpenJPA是一个开源的Java持久层框架,用于对象关系映射(ORM)。在ActiveMQ中,它用于在KahaDB中实现消息的持久化。你需要`openjpa-all.jar` 来支持这一功能。 6. **其他依赖**:此外,还有一些其他...
TongWeb6.1还支持EJB3.1,手册中提供了EJB3.0和EJB3.1特性的相关说明,JPA的OpenJPA实现,以及EJB容器特性的支持,包括实例管理、查看编辑配置属性、远程调用和集群功能。全球事务章节中,手册讲解了全局事务的概念...
6. **EclipseLink或OpenJPA**:有时,`javax.persistence-api.jar`会出现在包里,这可能是为了支持JPA(Java Persistence API)。EclipseLink或OpenJPA是JPA的实现,虽然Hibernate也是JPA供应商,但有些项目可能选择...
3. 日志管理:合理配置日志系统,如Logback或Log4j,便于问题排查。 4. 错误处理:自定义全局异常处理器,提高错误反馈的用户体验。 5. 安全性:利用Spring Security增强应用安全性,设置合适的认证和授权策略。 6. ...
- **持久化框架**:支持Hibernate、OpenJPA等流行的ORM工具。 - **消息中间件**:集成ActiveMQ等消息传递组件。 #### 1.6 规范支持 TongWeb6.0严格遵循以下技术规范: - Java EE 6 Web Profile - JDBC - JPA - EJB ...
7. **EclipseLink或OpenJPA**:在某些情况下,可能需要这些JPA提供商的库,特别是在与JPA集成时。 8. **ASM或ByteBuddy**:Hibernate使用这些库进行运行时字节码操作,用于实体类的动态代理和增强。 9. **Commons-...
6. **features**:包含OpenLiberty支持的各种特性清单,比如JAX-RS(Java API for RESTful Web Services)、JPA(Java Persistence API)、CDI(Contexts and Dependency Injection)等。用户可以通过修改`server....
- 持久化提供者的实现,如Hibernate或OpenJPA,这些是JPA的具体实现,用于实际的数据操作。 - JMS(Java Message Service)库,用于EJB之间的异步通信。 - 连接池库,如C3P0或Apache DBCP,用于管理数据库连接资源。...
- **EclipseLink或OpenJPA**:对于使用JPA(Java Persistence API)的项目,可能还需要这些JPA提供商的库。 在实际项目中,将这些JAR包添加到项目的类路径后,还需要进行相应的配置,比如在hibernate.cfg.xml文件中...
#### 三十九、OpenJPA缓存(OpenJPA Caching) OpenJPA是Java Persistence API的一个开源实现。这部分内容介绍了如何将Ehcache与OpenJPA结合起来使用。 #### 四十、Grails缓存(Grails Caching) Grails是基于...