自定义Log4j appender与Tomcat 7共享?

时间:2013-08-07 21:05:09

标签: tomcat grails log4j

我想在部署到单个Tomcat实例的几个Grails应用程序之间共享一个TimeAndSizeRollingAppender log4j appender。

我将自定义appender jar部署到 $ CATALINA_BASE / lib $ CATALINA_HOME / lib 时收到错误:

script137576019951183098840.groovy: 39: unable to resolve class uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender @ line 39, column 18.                                                                                                    
       appender new uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender(
                ^
1 error

Aug 5, 2013 8:36:40 PM org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper warn

如果我将jar部署到 $ CATALINA_BASE / webapps / app1 / WEB-INF / lib $ CATALINA_BASE / webapps / app2 / WEB-INF / lib ,它会起作用。但是,我想将此部署详细信息保留在应用程序本身的外部。

我正在使用以下externalized configuration配置应用程序中的日志记录:

APP1-Config.groovy中

log4j = {
    appenders {
        appender new uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender(
            name: "file",
            file: "app1.log",
            threshold: org.apache.log4j.Level.ALL,
            datePattern: ".yyyy-MM-dd",
            compressionAlgorithm: "ZIP",
            compressionMinQueueSize: 2,
            layout: pattern(conversionPattern: "%d{MM-dd-yyyy HH:mm:ss.SSS} [%t] %c %M %x%n%p: %m%n"))
    }
}

APP2-Config.groovy中

log4j = {
    appenders {
        appender new uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender(
            name: "file",
            file: "app2.log",
            threshold: org.apache.log4j.Level.ALL,
            datePattern: ".yyyy-MM-dd",
            compressionAlgorithm: "ZIP",
            compressionMinQueueSize: 2,
            layout: pattern(conversionPattern: "%d{MM-dd-yyyy HH:mm:ss.SSS} [%t] %c %M %x%n%p: %m%n"))
    }
}

如何使用Tomcat在应用程序库之外共享一个公共appender?

0 个答案:

没有答案