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

标签 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

最佳答案

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

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

关于java - 如何在java web项目中配置自定义日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636584/

相关文章:

java - REST API Url 中的额外查询参数

security - 保护 JBoss 5.1.0.GA 中的 JMXConnectorServerService (jmx-remoting.sar) 安全

java - Jboss 5.1 session 超时不起作用

java - Android 中的服务器端验证 : asynchronous method called in if statement workaround

java - 改变 Activity

Java awt EventListener 异步?

java - slf4j 日志文件丢失

java - 仅针对某些 jar 将 System.out/System.err 重定向到 log4j

java - 如何将 jasper 报告日志记录到单独的日志文件中?

java - 部署后立即在 MDB 中使用 EJB 的运行时查找