【问题标题】:how to get the hibernate log in a log file如何在日志文件中获取休眠日志
【发布时间】:2011-10-05 05:04:28
【问题描述】:

我使用休眠作为 ORM 工具。它工作正常,但问题是,我在控制台上获取休眠日志,而不是我想要在日志文件中。我尝试了以下代码。

LogManager.resetConfiguration();
PropertyConfigurator.configureAndWatch("D:\\Workspace\\Project\\log4j.properties");

并且属性文件看起来像:

log4j.rootLogger=FATAL, HIBERNATEFILE

log4j.appender.HIBERNATEFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.HIBERNATEFILE.file=H:/Project/Hibernate.log
log4j.appender.HIBERNATEFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.HIBERNATEFILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %c | %m%n

log4j.category.org.hibernate=DEBUG, HIBERNATEFILE
log4j.additivity.org.hibernate=false

Java 代码,我在调用 hibernate 创建配置之前编写的。我得到了所有已正确登录项目的语句,但休眠日志需要在日志文件中。

我错过了什么吗?

【问题讨论】:

    标签: java hibernate logging log4j


    【解决方案1】:

    查看heredocumentation,您需要告诉 log4j 要查看的包/类别。

    示例...

    log4j.logger.org.hibernate=HIBERNATEFILE
    log4j.additivity.org.hibernate.SQL=false
    log4j.logger.org.hibernate.type=TRACE,HIBERNATEFILE
    

    【讨论】:

    • 我尝试了你的建议。但它没有奏效。仍在控制台上获取日志。
    • 您能否更新您的答案以包括该类别的日志记录类别和附加程序?
    • 我更新了我的示例,使其更加直接。当您启动应用程序时,您是否遇到任何错误,例如...请初始化。 log4j 正确吗?还有它是如何运行的——它是一个 web 应用程序、swing 应用程序等,一些应用程序服务器可能很难开始工作。
    【解决方案2】:

    我相信 Hibernate 输出到控制台是由于您将 hibernate.show_sql 设置为 true 造成的。您应该将其关闭并配置 Hibernate 以将 SQL 记录到 log4j/sl4j 日志中。

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      相关资源
      最近更新 更多