grails - 如何解决此错误消息 "log4j:ERROR Property missing when configuring log4j: grails"

标签 grails logging log4j

我一直在使用 grails 一段时间,并且觉得可以处理这个错误。

每次我尝试我的“运行应用程序”命令时,当我将日志文件作为部署查看时,我会在输出中看到这一行

log4j:ERROR Property missing when configuring log4j: grails

我不知道它在寻找什么。我有几个要部署的环境,每个环境都显示相同的消息。

这是我的 config.groovy 中的 block :
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 正在寻找?

最佳答案

保持配置如下。通过删除不需要的和不相关的配置,在 log4j 中添加环境级别 log4j 配置。

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

关于grails - 如何解决此错误消息 "log4j:ERROR Property missing when configuring log4j: grails",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23498534/

相关文章:

grails - 使用数据绑定(bind)更新多对多关系时索引超出范围

grails - Web服务的Grails groovy应用程序

postgresql - SQL Servfer 的 CONTEXT_INFO 的 PostgreSQL 等价物是什么?

java - 如何更改 log4j 中的 htmllayout

grails - 解析JSON日期

grails - 转换:日期时间到时间

node.js - Heroku 日志 - 错误消息中提到的打开日志

json - 读取日志时,JSON 从双引号变为单引号

java - Log4j 堆栈溢出错误

java - 可以使用 "log4j jms appender"将消息发送到 QUEUE 而不是 TOPIC(就像我在所有示例中发现的那样。)