TRACE中的grails / gorm / org.hibernate.type什么都不打印

时间:2010-12-15 14:14:27

标签: hibernate logging grails groovy

我无法使用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是新手。

2 个答案:

答案 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应用程序,而不必为不同的服务器分别构建。