我的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"
答案 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"
这样可行。