我无法使用log4j.xml配置 org.hibernate.type (使用hibernate预处理语句记录绑定变量),但可以使用Config.groovy中的log4j DSL。
我们需要为不同的环境配置日志记录而不为每个环境构建不同的WAR,因此如果可能的话,需要使用log4j.xml而不是DSL。
已经放
<logger name="org.hibernate.type">
<level value="TRACE"/>
<appender-ref ref="console"/>
</logger>
但绑定不会打印。以前在DSL中他们做过。
log4j = {
...
trace 'org.hibernate.type'
}
非常奇怪,因为其他的hibernate日志记录可以通过log4j.xml控制。
任何想法都非常感激。
顺便说一句,在Config.groovy中使用DSL建议作为灵活管理环境配置的最佳实践 - 包含配置的编译对象似乎令人惊讶 - 但对于grails是新手。
答案 0 :(得分:0)
您可以根据Config.groovy文件中的环境配置日志记录
// set per-environment
environments {
development {
log4j = {
...
}
}
test {
log4j = {
...
}
}
}
答案 1 :(得分:0)
我建议你为每个服务器使用单独的配置文件。要在服务器的主文件夹中安装自定义配置文件,请在config.groovy中输入以下内容:
grails.config.locations = [ "file:${userHome}/customConfig.groovy" ]
然后,在您的Web服务器的主文件夹中创建customConfig.groovy
(如果您使用的是Linux和Tomcat,则为vim ~tomcat/customConfig.groovy
),并覆盖您想要的任何属性。唯一的障碍是,对于日志记录DSL,您需要在此处提供整个日志记录块(您不能像大多数其他配置设置一样覆盖所选属性)。
这样,您只需在配置更改时重新启动Web应用程序,而不必为不同的服务器分别构建。