由于调用run-app使用grails中的tomcat-plugin,如何在server.xml中修改grails的AccessLogValve不存在?
我只需要这个用于开发,因为在生产中我将把战争部署到tomcat。
提前致谢
答案 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)
悲伤。