簡體   English   中英

Grails Groovy 配置 Log4j

[英]Grails Groovy Configure Log4j

我有一項任務要處理我們以前的同事開發的舊 Grails 應用程序。 grails 應用程序使用的版本是 2.2.5,在 Java 1.7 上運行。 當我運行應用程序時,我得到這個:(關於 plugins.log4j.Log4jConfig.methodMissing BeanUtils)

正在解決 [運行時] 依賴關系... | 錯誤 log4j:ERROR 初始化錯誤 log4j:org/apache/commons/beanutils/BeanUtils | 錯誤 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/BeanUtils | org.codehaus.groovy.grails.plugins.log4j.Log4jConfig.methodMissing(Log4jConfig.groovy:103)錯誤 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 錯誤 | sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 錯誤 sun.reflect.DelegatingMethodAccessorImpl.invoke 出錯(DelegatingMethodAccessorImpl.java:43)

該應用程序確實運行但由於上述錯誤消息而沒有日志。 由於沒有日志,因此無法跟蹤和理解代碼。 提前感謝您的幫助。

這是BuildConfig.groovy中的依賴項和插件

dependencies {
    runtime 'mysql:mysql-connector-java:5.1.22'
    test "org.spockframework:spock-grails-support:0.7-groovy-2.0"
    compile "org.jadira.usertype:usertype.jodatime:1.9"
    runtime 'com.paypal.sdk:rest-api-sdk:0.7.0'
}

plugins {
    runtime ":hibernate:$grailsVersion"
    runtime ":jquery:1.8.3"
    runtime ":resources:1.1.6"
    compile ':runtime-logging:0.4'
    build ":tomcat:$grailsVersion"
    compile ":spring-security-core:1.2.7.3"     
    compile ":spring-security-ui:0.2"
    compile ":famfamfam:1.0.1"
    compile ":jquery-ui:1.8.24"
    compile ":joda-time:1.4"
    compile ":quartz:1.0-RC6"
    compile ":audit-logging:0.5.4"
    compile ":console:1.2"
    compile ":mail:1.0.1"
    compile ":kickstart-with-bootstrap:0.9.6"
    runtime ":database-migration:1.3.6"
    compile ':cache:1.0.1'
    compile ':crypto:2.0'
    compile ":csv:0.3.1"
    test ":code-coverage:1.2.6"
    compile ":gmetrics:0.3.1"
    compile ":codenarc:0.23"
    compile ":export:1.6"
}

Config.groovy中的Log4j配置

log4j = {
def gbPattern = pattern(conversionPattern: "%d{dd MMM yyyy HH:mm:ss} [%X{user_rid},%X{user_name},%X{user_action}] [%5p] %-30.30c{2} %m%n")
def infoLog = "${new File('./logs').exists() ? './logs' : '/tmp/'}/info.log"
def debugLog = "${new File('./logs').exists() ? './logs' : '/tmp/'}/debug.log"

appenders {
    console name: 'stdout', layout: gbPattern
    appender new DailyRollingFileAppender(
            name: 'debugLog',
            threshold: org.apache.log4j.Level.DEBUG,
            datePattern: "'.'yyyy-MM-dd",  // See the API for all patterns.
            fileName: debugLog,
            layout: gbPattern
    )
    appender new DailyRollingFileAppender(
            name: 'rollingLog',
            threshold: org.apache.log4j.Level.INFO,
            datePattern: "'.'yyyy-MM-dd",  // See the API for all patterns.
            fileName: infoLog,
            layout: gbPattern
    )
}

root {
    if(Environment.isDevelopmentMode()) {
        info 'stdout', 'rollingLog', 'debugLog'
    } else {
        info 'rollingLog', 'debugLog'

    }

    additivity = false
}

嘗試在插件的BuildConfig.groovy中添加以下依賴項:

compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM