当前位置: 首页 > 知识库问答 >
问题:

grailsgroovy配置Log4j

漆雕奇逸
2023-03-14

我有一个任务要处理我们以前的同事开发的旧Grails应用程序。使用的grails应用程序的版本是2.2.5,运行在Java1.7上。当我运行的应用程序我得到这个:(约plugins.log4j.Log4jConfig.method丢失的BeanUtils)

解决[运行时]依赖...|错误log4j:错误错误初始化log4j: org/apache/共用/beanutils/BeanUtils|错误java.lang.NoClassDefFoundError: org/apache/共用/beanutils/BeanUtils|错误在org.codehaus.groovy.grails.plugins.log4j.Log4jConfig.method丢失(Log4jConfig.groovy:103)|错误在sun.reflect.NativeMEDAccessorImpl.invoke0(本机方法)|错误在sun.reflect.NativeMEDAccessorImpl.invoke(NativeMEDAccessorImpl.java:57)|错误在sun.reflect.委托mpl.invoke(委托mpl.java:43)

应用程序确实运行,但由于上述错误消息,没有日志。由于没有日志,因此无法跟踪和理解代码。谢谢你的帮助。

以下是BuildConfig中的依赖项和插件。棒极了

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

和配置中的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
}

共有1个答案

长孙沈义
2023-03-14

尝试在BuildConfig中添加以下依赖项。groovy插件:

compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4'
 类似资料:
  • 将log4j的jar包放入WebContent/WEB-INF/lib下面 在conf目录中,新建一个文件,名为 log4j.properties 内容是 log4j.rootLogger=debug,Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.

  • 丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能。在本章我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!

  • Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。 所以,这里需要纠正之前的一个概念。Logstash 不只是一个input | filter | outpu

  • 在 “Hello World” 示例中,我们已经见到并介绍了 logstash 的运行流程和配置的基础语法。从这章开始,我们就要逐一介绍 logstash 流程中比较常用的一些插件,并在介绍中针对其主要适用的场景,推荐的配置,作一些说明。 限于篇幅,接下来内容中,配置示例不一定能贴完整。请记住一个原则:Logstash 配置一定要有一个 input 和一个 output。在演示过程中,如果没有写明