从run-app配置Grails访问日志记录

时间:2010-01-23 04:05:22

标签: tomcat logging grails

由于调用run-app使用grails中的tomcat-plugin,如何在server.xml中修改grails的AccessLogValve不存在?

我只需要这个用于开发,因为在生产中我将把战争部署到tomcat。

提前致谢

2 个答案:

答案 0 :(得分:6)

您可以在脚本/ _Events.groovy中的'ConfigureTomcat'事件的回调中对其进行配置:

import org.apache.catalina.valves.AccessLogValve

eventConfigureTomcat = { tomcat ->
 tomcat.host.addValve new AccessLogValve(
  directory: basedir, prefix: 'localhost_access_log.', pattern: 'common')
}

答案 1 :(得分:0)

我必须将它包装在开发环境块中,否则我在dev之外会遇到可怕的错误

这是我最终的结果,但我仍然不满意,因为

grails run-war -https

不开心

eventConfigureTomcat = { tomcat ->
    if (grailsEnv == "development") {
        tomcat?.host?.addValve new AccessLogValve(
            directory: basedir,
            prefix: 'localhost_access_log.',
            suffix: '.log',
            pattern: 'common')
    }
}

产生这个:

[unzip] Expanding: foo.war into /Users/tak/.grails/1.3.7/projects/foo/war
Running Grails application..
java.lang.NullPointerException: Cannot set property 'hostname' on null object
at org.grails.tomcat.TomcatServer.startSecure(TomcatServer.groovy:273)

悲伤。