我正在使用 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/