grails不会写入日志文件

时间:2014-03-09 19:27:34

标签: grails logging

我的grails config log4j部分中有以下内容:

appenders {
  file name: "usageAppender", file: "${logDirectory}/onetract3.log"
}

root { error 'stdout', 'usageAppender' }

info usageAppender: "grails.app.services.com.onetract.onetract.UserService"

成功创建了文件“onetract3.log”,但没有任何内容写入此文件。

我可以在控制台中看到信息处理正确。

2014-03-09 20:09:06,912 [http-bio-8080-exec-5] INFO  onetract.UserService  - New candidateRelations for: com.onetract.onetract.Person : 18

Grails版本为2.3.5

关于为什么没有写入日志文件的任何想法?

编辑:10.03.1014,将additivity设置为false。

info additivity: false 
    usageAppender: "grails.app.services.com.onetract.onetract.UserService" 

2 个答案:

答案 0 :(得分:1)

使用此

// Example of changing the log pattern for the default console appender:
//
//appenders {
//    console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}

    appenders {
        rollingFile  name:'myLogFile', 
        file:'log/myLogFile.log', 
        threshold: org.apache.log4j.Level.ALL, 
        maxFileSize:10485760
    }
    root {
        error 'myLogFile'
        additivity = true
    }

   info "grails.app","com.test"
   warn "grails.app","com.test"
   debug "grails.app","com.test"
   error "grails.app","com.test"
   fatal "grails.app","com.test"
   trace "grails.app","com.test"

   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'

答案 1 :(得分:1)

问题是由于以下条目:

file: "${logDirectory}/onetract3.log"

在应用程序运行之前,这是有效的,之后不是。

解决方法是明确告诉appender文件的位置,即

file: "logs/onetract/onetract3.log"

这样可行。

相关问题