Grails非常高兴在发生错误的情况下追加发送到控制台输出的参数:
2011-05-23 12:17:05,173 [http-8080-5] ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [POST] / - parameters:
maps: on
maps: on
maps: on
maps:
_isPublic:
description: test
name: set1
isPublic: on
Stacktrace follows:
...
但是如何告诉它始终显示发送了哪些参数(例如在Rails中)?
我当前的
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'
最佳答案
我不相信Grails本身支持记录每个请求的请求参数。但是,您可以在过滤器中轻松实现此目的:
package com.example
class MyFilters {
private static final log = org.apache.commons.logging.LogFactory.getLog(this)
def filters = {
paramLogger(controller:'*', action:'*') {
before = {
log.debug "request params: $params"
}
}
}
}
记住要通过在Config.groovy中为此过滤器启用调试日志记录,方法是添加
debug com.example
到
log4j
闭包
关于debugging - 如何调试Grails中发送的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6095917/