Problem może polegać na tym, że produkt WebSphere 6.1 wykorzystuje wewnętrznie logowanie Jakarta Commons (JCL), a jeśli któryś z twoich kodów lub bibliotek innych firm również korzysta z JCL, konfiguracja WebSphere powoduje konflikty z twoją aplikacją próbującą użyć log4j. Jeśli tak się stanie, zobaczysz dokładnie to, co widzisz.
Istnieje wiele modeli references i blog posts, które opisują sposoby rozwiązania tego problemu. Najłatwiejszym do utworzenia plikiem o nazwie org.apache.commons.logging.LogFactory
jest katalog META-INF/services
Twojej aplikacji internetowej (w katalogu głównym archiwum WAR). Plik ten musi zawierać linię:
org.apache.commons.logging.impl.Log4jFactory
(Przynajmniej z nowszymi wersjami WebSphere ...) Innym kluczowym jest to, że jar JCL muszą być ładowane z tej samej lokalizacji co słoik log4j. na przykład zarówno z WEB-INF/lib lub obu z biblioteki współdzielonej. W związku z tym nie można cofnąć się po załadowaniu JCL z kopii dostarczonej przez WebSphere. Jeśli są one ładowane przez different classloaders, nie mogą poprawnie się widzieć.
Będzie dobrze, jeśli załączysz jakiś kod. Używam websphere i wszystkie moje logi w oddzielnym pliku dziennika. –
Czy używasz jakiejś elewacji do pozyskiwania drewna, takiej jak rejestracja wspólnot? Jeśli tak, powinieneś zmienić kolejność ładowania klas na parent-last. – szhem
Nie musisz robić parent-last, a ponieważ ma inne efekty, uniknęłbym go, jeśli to możliwe. – dbreaux