我有以下工作组织
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的新路径?如果是,怎么样?
答案 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保存在默认位置。