如何解决此错误消息" log4j:配置log4j时缺少ERROR属性:grails"

时间:2014-05-06 15:13:32

标签: grails logging log4j

我一直在使用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正在寻找什么?

1 个答案:

答案 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'
}