【问题标题】:Grails Groovy Configure Log4jGrails Groovy 配置 Log4j
【发布时间】:2020-12-28 15:31:24
【问题描述】:

我有一个任务要解决我们以前的同事开发的旧 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 错误(本机方法) | 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
}

【问题讨论】:

    标签: java grails groovy log4j apache-commons-beanutils


    【解决方案1】:

    尝试在插件的BuildConfig.groovy 中添加波纹管依赖:

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

    【讨论】:

    猜你喜欢
    • 2017-09-24
    • 2010-12-18
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2011-09-18
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多