我正在使用 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
最佳答案
看起来您的应用程序在其 lib
目录中拥有自己的 log4j.jar 包副本。这将与 JBoss 自己的副本发生冲突。
从 lib
目录中删除该 JAR 并重试,您的应用程序将使用 JBoss 副本。
关于java - 如何在java web项目中配置自定义日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636584/