如何在java Web项目中配置自定义日志文件

时间:2012-05-17 13:22:42

标签: java log4j jboss5.x

我正在使用eclipse IDE和jboss服务器(版本5)开发一个java Web应用程序。我正在尝试使用以下代码为我的应用程序实现自定义日志文件:

FileAppender fileAppender=new FileAppender(newPatternLayout(),Constant.LOGGER_PATH);
logger.addAppender(fileAppender);
BasicConfigurator.configure();
logger.setLevel(Level.ERROR);
logger.error(cause);

当我尝试将我的应用程序部署到jboss服务器时,它提供以下异常:

    18:35:16,346 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.util.OnlyOnceError
    andler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" varia
    le.
    18:35:16,346 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.spi.ErrorHa
    dler" was loaded by
    18:35:16,346 ERROR [STDERR] log4j:ERROR [WebappClassLoader
      delegate: false
      repositories:
        /WEB-INF/classes/
    ----------> Parent Classloader:
    java.net.FactoryURLClassLoader@893918
    ] whereas object of type
    18:35:16,346 ERROR [STDERR] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHa
    dler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@a32b].
    18:35:16,377 ERROR [STDERR] log4j:ERROR Could not create an Appender. Reported
    rror follows.
    18:35:16,377 ERROR [STDERR] java.lang.ClassCastException: org.jboss.logging.app
    nder.DailyRollingFileAppender cannot be cast to org.apache.log4j.Appender

1 个答案:

答案 0 :(得分:1)

看起来您的应用程序在其lib目录中有自己的log4j.jar包副本。这将与JBoss自己的副本冲突。

lib目录中删除该JAR并再试一次,您的应用程序将使用JBoss副本。