3.5. 日志
优质
小牛编辑
136浏览
2023-12-01
Hibernate 利用 Simple Logging Facade for Java (SLF4J) 来记录不同系统事件的日志。SLF4J 可以根据你选择的绑定把日志输出到几个日志框架(NOP、Simple、log4j version 1.2、JDK 1.4 logging、JCL 或 logback)上。为了设置日志,你需要在 classpath 里加入 slf4j-api.jar
和你选择的绑定的 JAR 文件(使用 Log4J 时加入 slf4j-log4j12.jar
)。更多的细节请参考 SLF4J 文档。要使用 Log4j,你也需要在 classpath 里加入 log4j.properties
文件。Hibernate 里的 src/
目录里带有一个属性文件的例子。
我们强烈建议你熟悉一下 Hibernate 的日志消息。在不失可读性的前提下,我们做了很多工作,使 Hibernate 的日志可能地详细。这是必要的查错利器。最令人感兴趣的日志分类有如下这些:
表 3.9. Hibernate 日志类别
类别 | 功能 |
---|---|
org.hibernate.SQL | 在所有 SQL DML 语句被执行时为它们记录日志 |
org.hibernate.type | 为所有 JDBC 参数记录日志 |
org.hibernate.tool.hbm2ddl | 在所有 SQL DDL 语句执行时为它们记录日志 |
org.hibernate.pretty | 在 session 清洗(flush)时,为所有与其关联的实体(最多 20 个)的状态记录日志 |
org.hibernate.cache | 为所有二级缓存的活动记录日志 |
org.hibernate.transaction | 为事务相关的活动记录日志 |
org.hibernate.jdbc | 为所有 JDBC 资源的获取记录日志 |
org.hibernate.hql.ast.AST | 在解析查询的时候,记录 HQL 和 SQL 的 AST 分析日志 |
org.hibernate.secure | 为 JAAS 认证请求做日志 |
org.hibernate | 为任何 Hibernate 相关信息记录日志(信息量较大,但对查错非常有帮助) |
在使用 Hibernate 开发应用程序时,你应当总是为 org.hibernate.SQL
开启 debug
级别的日志记录,或者开启 hibernate.show_sql
属性。