根据http://docs.codehaus.org/display/GROOVY/Groovy+1.8+release+notes#Groovy18releasenotes-Log groovy使用isDebugEnabled()等检查来包围日志语句.
grails是否为生成的代码执行此操作?
对于grails服务中的此日志调用:
log.debug("competitors errors stage 1: ${failedCarrierRequests}")
Run Code Online (Sandbox Code Playgroud)
在反编译的.class文件中,我只看到这个:
arrayOfCallSite[85].call(log, new GStringImpl(new Object[] { allCompetitorDepartmentsRows.get() }, new String[] { "All competitors: ", "" }));
Run Code Online (Sandbox Code Playgroud)
目前还不清楚是否在幕后检查日志级别.
假设在Config.groovy中我指定了我的应用程序属性:
app.work.dir='/temp/work'
Run Code Online (Sandbox Code Playgroud)
如何在同一Config.groovy文件中引用此属性值来定义其他属性,即这不起作用,因为此时grailApplication.config具有空属性:
app.resource.dir=grailsApplication.config.app.work.dir+'/static'
Run Code Online (Sandbox Code Playgroud)
我知道我可以定义一个变量,然后在两个地方使用这个变量,但它真的很难看,所以我希望有一个更简洁的方法来做到这一点.