2011-09-26 66 views
1

我的Grails應用程序將把現有數據庫映射到新數據庫。我從現有的數據庫中得到了一些未格式化的電子郵件地址,這些電子郵件地址由於約束(email:true)而未通過Grails應用程序的驗證,所以出現字段錯誤。Grails不使用自定義appender將消息打印到日誌文件

我想在日誌文件中寫入這些字段錯誤。我怎樣才能做到這一點?我在log4J中嘗試過一個Appender。它會以某種方式創建一個日誌文件,稱爲「migration.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}" 
    } 

在控制檯中發生的錯誤,我看到了一個「migration.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
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'  
     } 
    } 
} 

開發:日誌控制檯和調試級別文件

測試:日誌,以從信息的程度提交

PROD:日誌,以從信息的程度提交

相關問題