grails - 如何解析外部配置文件中的类引用以进行 grails war 部署?

标签 grails log4j perf4j

我正在使用 Grails 1.3.7。我构建了一个 war 文件并将其部署在 tomcat 中。我有一个用于设置日志记录的外部 groovy 配置文件。我在声明中添加了一些 perf4j 日志附加程序,但现在配置文件无法编译,因为它无法解析完全限定的类名。

代码如下所示:

log4j = {
    ...
    // file appender that writes out the URLs of the Google Chart API graphs generated by the performanceGraphAppender
    def performanceGraphFileAppender = new org.apache.log4j.FileAppender(
        fileName: "log/perfGraphs.log",
        layout: pattern(conversionPattern: '%m%n')
    )
    appender name: 'performanceGraphFileAppender', performanceGraphFileAppender

    // this appender creates the Google Chart API graphs
    def performanceGraphAppender = new org.perf4j.log4j.GraphingStatisticsAppender(
        graphType: 'Mean',      // possible options: Mean, Min, Max, StdDev, Count or TPS
        tagNamesToGraph: 'tag1,tag2,tag3',
        dataPointsPerGraph: 5
    )
    performanceGraphAppender.addAppender(performanceGraphFileAppender)
    appender name: 'performanceGraph', performanceGraphAppender

    ...
}

写入日志的错误消息是这样的:
script1317679813518843914255.groovy: 38: unable to resolve class org.perf4j.log4j.GraphingStatisticsAppender 
@ line 38, column 34.
    def performanceGraphAppender = new org.perf4j.log4j.GraphingStatisticsAppender(

我正在构建的 war 文件包含所有必需的 JAR。关于如何让它解决引用的任何想法?

谢谢,

基因

最佳答案

有可能在部署之后,它开始使用来自 tomcat 的 log4j。看看lib文件夹,也许它包含 log4j jars。如果这是真的 - 它使用不同的类加载器,那就看不到你的 perf4j 类。

您可以尝试将您的 perf4j jar 放入 tomcat 的 lib ,也许它可以解决这个问题

关于grails - 如何解析外部配置文件中的类引用以进行 grails war 部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641729/

相关文章:

grails - 如何在grails 2中使用 'appender-ref'设置log4j附加程序?

spring-boot - 使用gradle bootRun启动redirect()不会在Grails中解析@ info.app.name @

hibernate - GORM:如何将间隔映射到列?

grails - 如何获取当前登录grails的用户的ID?

grails - Grails Spock无法为模拟类创建对象

java - Log4j2 - 除 Spring 之外的调试级别日志记录

java - 在运行锁定文件的tomcat时移动文件

java - log4j 追加器配置