Hibernate不再记录任何内容,因为我重新定位了log4j.xml和hibernate.properties文件

时间:2013-01-11 14:34:30

标签: java hibernate log4j

我有以下工作组织

  • src/main/resources/log4j.xml
  • src/main/resources/hibernate.properties

我想重新组织我的网络应用程序,如下所示:

  • src/main/resources/log/log4j.xml
  • src/main/resources/orm/hibernate.properties

Logger.info("foobar")仍然记录良好(在设置了log4jConfigLocation上下文参数之后),并且应用程序仍然具有正常工作的数据库连接。

问题是即使hibernate.show_sql设置为true,Hibernate也不再记录任何内容。知道为什么吗?应该指定log4j.xml文件到Hibernate的新路径?如果是,怎么样?

2 个答案:

答案 0 :(得分:2)

您可以使用此VM参数运行服务器: -

-Dlog4j.configuration=/path/to/log4j.xml

我通常倾向于将log4j.xml放在推荐的默认位置,除非需要这样做......“约定优于配置”非常重要,特别是如果其他同行将来可能在同一个项目上工作。 / p>

答案 1 :(得分:2)

Log4j首先通过查看系统属性“log4j.configuration”查找其配置。如果未设置该系统属性,它将在类路径中查找log4j.properties或log4j.xml文件。

因此,如果您确实需要src / main / resources / log / log4j.xml中的log4j.xml,则必须设置log4j配置系统属性。这基本上是limc通过将其作为vm参数提供的。

也像limc所说的那样,你应该把log4j.xml保存在默认位置。