我正在使用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
答案 0 :(得分:1)
看起来您的应用程序在其lib
目录中有自己的log4j.jar包副本。这将与JBoss自己的副本冲突。
从lib
目录中删除该JAR并再试一次,您的应用程序将使用JBoss副本。