2012-05-17 66 views
0

我正在開發一個使用eclipse IDE和jboss服務器(版本5)的java web應用程序。我想實現一個自定義日誌文件爲我用下面的代碼的應用程序:如何在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: 
    [email protected] 
    ] whereas object of type 
    18:35:16,346 ERROR [STDERR] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHa 
    dler" was loaded by [[email protected]]. 
    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

它看起來就像您的應用程序在其lib目錄中有其自己的log4j.jar軟件包副本。這將與JBoss自己的副本衝突。

取下lib目錄JAR,然後再試一次,你的應用程序將使用JBoss的副本。

+0

感謝您的建議,但由於客戶端託管服務器出現問題,服務器日誌中沒有打印日誌數據。這就是爲什麼我必須實現這個自定義日誌文件。我可以通過任何代碼避免這種衝突。如果有什麼,請幫助我。 – Raktim

+0

@ user1401030:當您將log4j JAR取出應用程序時,您的自定義記錄器仍然可以工作。它將使用JBoss的JAR副本。 – skaffman

+0

非常感謝您的建議。它確實幫助我克服了我的問題。 – Raktim

相關問題