1

我有以下工作组织

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

我想重组我的 webapp 如下:

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

仍然可以很好地记录(在Logger.info("foobar")设置了log4jConfigLocation上下文参数之后),并且应用程序仍然具有有效的数据库连接。

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

4

2 回答 2

2

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

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

就像 limc 所说,您可能应该将 log4j.xml 保留在默认位置。

于 2013-01-11T20:06:07.020 回答
2

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

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

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

于 2013-01-11T15:09:42.547 回答