1

我正在使用 Grails 1.3.7。我构建了一个战争文件并将其部署在 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(

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

谢谢,

基因

4

1 回答 1

0

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

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

于 2011-10-04T01:47:03.877 回答