Grails не печатает сообщения в лог-файл с помощью специального приложения - PullRequest
1 голос
/ 26 сентября 2011

Приложение My Grails собирается преобразовать существующую базу данных в новую базу данных. Я получил несколько неотформатированных адресов электронной почты из существующей базы данных, которые не проходят проверку в приложении Grails из-за ограничения (email:true), поэтому я получаю сообщение об ошибке поля.

Я хочу записать эти полевые ошибки в файл журнала. Как я могу это сделать? Я попробовал Appender в log4J. Он каким-то образом создаст файл журнала, так называемый «igration.log », но не запишет в этот файл журнала ошибки поля.

log4j = {
// Example of changing the log pattern for the default console
// appender:
//
appenders {
   // console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
   appender new FileAppender(
     name: "migrationAppender",file : "migration.log", layout: pattern(conversionPattern: "%c{2} %m%n")
   )
}

Это конфиграция. Я определяю FileAppender. На моем обслуживании. Я просто называю следующее:

 def foundation = new Foundation(name: name, foundationName: foundationName).addToAddresses(address).addToCommunicationMedia(email)
    foundation.validate()
    if (!foundation.hasErrors()) {
        foundation.save(flush: true)
    }
    else {
        log.error "${foundation.errors}"
    }

В консоли возникают ошибки, и я вижу, что "igration.log "был создан, но каким-то образом файл пуст.

Error 2011-09-26 09:00:29,543 [main] ERROR service.MasterDataMigrationService  - org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'de.rvgmbh.nemesis.migration.domain.partner.participant.IndividualPerson' on field 'communicationMedia[0].address': rejected value [erbelrechtsanwalt-eberl.de];

1 Ответ

3 голосов
/ 26 сентября 2011
log4j = {   
    appenders {     
        rollingFile name:"file", maxFileSize:(1024*1024), file:"migration.log", maxBackupIndex:10
        environments {
            development {
                console name:'stdout'
            }
        }
    }

    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'

    environments {
        development {
            root {
                info 'file', 'stdout'
            }
            debug 'grails.app'

        }//development
        test {
            root {
                info 'file'
            }
            info  'grails.app'          
        }
        production {
            root {
                info 'file'
            }           
            info  'grails.app'      
        }
    }
}

dev: запись в консоль и файл с уровня отладки

test: запись в файл с информационного уровня

prod: запись в файл с информационного уровня

...