Как отладить параметры, отправленные в Grails - PullRequest
1 голос
/ 23 мая 2011

В 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'

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Я не верю, что 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закрытие

1 голос
/ 23 мая 2011

Вы, вероятно, хотите получить больше вывода от org.codehaus.groovy.grails.web, поэтому установите его на более низкий уровень (debug или trace)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...