2011-02-11 38 views
0

我有兩個部署到Tomcat的webapps。該服務以catalina.sh中的-Dlog4j.configuration = log4j.properties啓動潛在日誌記錄/ Log4j惡意狀況

有時我注意到只有一個webapps正在記錄到該文件。我重新啓動Tomcat,兩者都重新登錄。關於衝突可能是什麼的任何想法?不應該這是受支持的配置,因爲這兩個應用程序都運行在同一個JVM中,並且具有全局配置?

我能想到的,可能會干擾的唯一的事情就是CXF日誌配置:META-INF/CXF/org.apache.cxf.Logger

更新

我發現,無論是web應用仍然記錄,但一個的webapp記錄到文件在不同的位置,所以我會看到類似

 
1:59PM - xx 
2:00PM - xxxx 
1:45PM - xxx 

有時它會記錄到滾動文件。

回答

1

我不知道爲什麼會發生這種情況,但您可以插入一些正在觸發的調試代碼,以查看日誌記錄失敗時發生了什麼。像這樣的東西(未測試的代碼!):

Category logger = Logger.getLogger(yourClass); 
do { 
    Level level = logger.getLevel(); 
    System.out.println("Log level of " + logger + " is " + level + ". Appenders:"); 
    for (Enumeration appenders = logger.getAllAppenders() ; appenders.hasMoreElements() ;) { 
    System.out.println(appenders.nextElement()); 
    } 
    logger = logger.getParent(); 
} while (logger != Logger.getRootLogger()) 

它與System.out.println有些諷刺調試log4j的,但它會做的工作(這是一個扔掉的代碼反正)。