从 run-app 配置 Grails 访问日志
Posted
技术标签:
【中文标题】从 run-app 配置 Grails 访问日志【英文标题】:Configuring Grails Access Logging from run-app 【发布时间】:2011-01-08 11:42:45 【问题描述】:由于调用run-app使用了grails中的tomcat-plugin,那么server.xml中grails AccessLogValve不存在时如何修改?
我只需要这个用于开发,因为在生产中我只会将战争部署到 tomcat。
提前致谢
【问题讨论】:
【参考方案1】:您可以在 scripts/_Events.groovy 中的“ConfigureTomcat”事件的回调中配置它:
import org.apache.catalina.valves.AccessLogValve
eventConfigureTomcat = tomcat ->
tomcat.host.addValve new AccessLogValve(
directory: basedir, prefix: 'localhost_access_log.', pattern: 'common')
【讨论】:
【参考方案2】:我必须将它包装在开发环境块中,否则我在开发之外遇到可怕的错误
这是我最终的结果,但我仍然不满意,因为
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)
悲伤。
【讨论】:
嘿德!!你能成功地进行这场战争吗以上是关于从 run-app 配置 Grails 访问日志的主要内容,如果未能解决你的问题,请参考以下文章
当我使用 run-app 但部署 .war 时,Grails 操作是安全的