从默认日志记录配置开始,我添加了root {}块以打开调试级别日志记录。我为我的控制器添加了一种方法......
log4j = {
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
warn 'org.mortbay.log'
debug 'grails.app.controller'
root {
debug()
}
}
现在我调试好了。但我从各处得到它。 Grails在执行运行应用程序,清除缓存,加载spring bean等时所经历的所有启动垃圾。我想配置这个,所以我得到的唯一日志记录来自我的代码。这甚至可能吗?
答案 0 :(得分:4)
在Config.groovy文件的log4j部分中,定义一个这样的日志追加器:
appender name: "appLog",
new org.apache.log4j.DailyRollingFileAppender(
threshold: org.apache.log4j.Level.INFO,
datePattern: "'.'yyyy-MM-dd",
file: "${logDirectory}/app.log",
layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
让root logger成为root用户,然后登录控制台:
root {
additivity = true
info stdout
}
然后将调试仅添加到特定记录器中的应用
debug additivity:true, appLog: "grails.app"
Grails Logging Section已经发生了很大的变化,但现在几乎是最新的。