我一直在使用grails一段时间,感觉可以处理这个错误。
每次我尝试使用“run-app”命令,当我将日志文件视为部署时,我会在输出中看到这一行
log4j:ERROR Property missing when configuring log4j: grails
我无法想象它的寻找方式。我正在部署几个环境,每个环境都显示相同的消息。
这是我在config.groovy中的阻止:
def appName = "${appName}"
def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.' // just in case
def logDirectory = "${catalinaBase}/logs"
log4j = { root ->
appenders {
rollingFile name:'stdout', file:"${logDirectory}/${appName}.log".toString(), maxFileSize:'10MB'
rollingFile name:'stacktrace', file:"${logDirectory}/${appName}_stack.log".toString(), maxFileSize:'1MB'
}
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'
warn 'grails',
'grails.plugin.webxml.WebxmlGrailsPlugin',
'grails.app.service',
'grails.plugins.hawkeventing',
'net.sf.ehcache.hibernate'
root.level = org.apache.log4j.Level.INFO
grails.plugin.databasemigration.updateOnStart = true
}
codenarc {
reportName = 'target/test-reports/CodeNarcReport.xml'
reportType = 'xml'
propertiesFile = 'grails-app/conf/codenarc.properties'
}
environments {
development {
log4j = { root ->
appenders {
console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
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',
'org.codehaus.groovy.grails.compiler'
warn 'grails',
'grails.app.service',
'grails.plugin.webxml.WebxmlGrailsPlugin',
'grails.plugins.hawkeventing',
'net.sf.ehcache.hibernate'
root.level = org.apache.log4j.Level.INFO
grails.plugin.databasemigration.updateOnStart = true
}
codenarc {
reportName = 'target/test-reports/CodeNarcReport.html'
reportType = 'html'
}
//grails.plugin.databasemigration.updateOnStart = false
}
staging {
log4j = { root ->
appenders {
rollingFile name:'stdout', file:"${logDirectory}/${appName}.log".toString(), maxFileSize:'10MB'
rollingFile name:'stacktrace', file:"${logDirectory}/${appName}_stack.log".toString(), maxFileSize:'10MB'
//console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
warn '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
'grails.app.service',
'org.codehaus.groovy.grails.compiler',
'org.springframework'
debug 'org.hibernate',
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'com.sexingtechnologies',
'grails.plugins.hawkeventing',
'net.sf.ehcache.hibernate'
error 'grails',
'grails.plugin.webxml.WebxmlGrailsPlugin'
root.level = org.apache.log4j.Level.INFO
grails.plugin.databasemigration.updateOnStart = true
}
codenarc {
reportName = 'target/test-reports/CodeNarcReport.html'
reportType = 'html'
}
//grails.plugin.databasemigration.updateOnStart = false
}
dbdiff {
log4j = { root ->
appenders {
console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
warn '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'
debug 'grails.app.service',
root.level = org.apache.log4j.Level.INFO
}
}
}
我在这里想到的log4j正在寻找什么?
答案 0 :(得分:2)
保持配置如下。通过删除不需要的和不相关的配置,在log4j中添加envirnoment level log4j config。
def appName = "${appName}"
def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.' // just in case
def logDirectory = "${catalinaBase}/logs"
grails.plugin.databasemigration.updateOnStart = true
log4j = { root ->
appenders {
rollingFile name: 'stdout', file: "${logDirectory}/${appName}.log".toString(), maxFileSize: '10MB'
rollingFile name: 'stacktrace', file: "${logDirectory}/${appName}_stack.log".toString(), maxFileSize: '1MB'
}
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'
warn 'grails',
'grails.plugin.webxml.WebxmlGrailsPlugin',
'grails.app.service',
'grails.plugins.hawkeventing',
'net.sf.ehcache.hibernate'
root.level = org.apache.log4j.Level.INFO
environments {
development {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
// DO STUFF RELATED TO DEV ENV
}
staging {
appenders {
rollingFile name: 'stdout', file: "${logDirectory}/${appName}.log".toString(), maxFileSize: '10MB'
rollingFile name: 'stacktrace', file: "${logDirectory}/${appName}_stack.log".toString(), maxFileSize: '10MB'
//console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
// DO STUFF RELATED TO STAGING ENV
}
dbdiff {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
// DO STUFF RELATED TO DBDIFF ENV
}
}
}
codenarc {
reportName = 'target/test-reports/CodeNarcReport.xml'
reportType = 'xml'
propertiesFile = 'grails-app/conf/codenarc.properties'
}