0

我正在使用 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 错误 [STDERR] log4j:ERROR A "org.jboss.logging.util.OnlyOnceError
    andler”对象不可分配给“org.apache.log4j.spi.ErrorHandler”变量
    乐。
    18:35:16,346 错误 [STDERR] log4j:ERROR 类“org.apache.log4j.spi.ErrorHa
    dler" 由
    18:35:16,346 错误 [STDERR] log4j:错误 [WebappClassLoader
      委托人:假
      存储库:
        /WEB-INF/类/
    ----------> 父类加载器:
    java.net.FactoryURLClassLoader@893918
    ] 而对象类型
    18:35:16,346 错误 [STDERR] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHa
    dler" 由 [org.jboss.system.server.NoAnnotationURLClassLoader@a32b] 加载。
    18:35:16,377 错误 [STDERR] log4j:ERROR 无法创建 Appender。报告
    错误如下。
    18:35:16,377 错误 [STDERR] java.lang.ClassCastException: org.jboss.logging.app
    nder.DailyRollingFileAppender 不能转换为 org.apache.log4j.Appender
4

1 回答 1

1

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

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

于 2012-05-17T13:24:37.097 回答