Gdzie pracujemy używamy Log4j do rejestrowania aplikacji internetowych. Plik log4j.jar znajduje się na poziomie aplikacji, a nie na poziomie kontenera. Używamy codziennej aplikacji do przesyłania plików. Nasze pliki log4j.properties definiują aplikacje na podstawie nazwy pakietu aplikacji, więc tylko klasy znajdujące się w pakiecie naszej aplikacji i poniżej są rejestrowane w pliku dziennika naszej aplikacji.Strategie logowania do logów aplikacji z kodu biblioteki?
W mojej aplikacji rozszerzam nasz framework o kilka klas pomocniczych. Te klasy nie znajdują się w pakiecie aplikacji, ponieważ nie są one wyłączne dla mojej aplikacji i ostatecznie zostaną przekształcone w bibliotekę słoików do użytku z innymi aplikacjami. Z tego powodu moje instrukcje rejestrowania nie są odbierane przez aplikację mojego append, a zatem nie są rejestrowane w plikach dziennika mojej aplikacji.
Chcę umożliwić klasom w moim słoiku zalogować się do pliku dziennika aplikacji przy użyciu klas. Jeśli jednak utworzę appender w pliku właściwości log4j mojej aplikacji na podstawie moich nazw klas, podejrzewam, że gdy wiele aplikacji używa mojego słoika, z powodu identycznych nazw klas w plikach log4j.properties, tylko jeden plik dziennika aplikacji otrzyma mój słoiki logujące wyciągi, i że otrzyma WSZYSTKIE instrukcje rejestrowania od KAŻDEJ aplikacji używającej tego słoika. Myślę, że tak jest, ponieważ używamy statycznego wywołania Logger.getLogger() w celu odzyskania programu rejestrującego.
Najpierw chcę wiedzieć, czy moje obawy są ważne, czy tak naprawdę stanie się, gdy wiele aplikacji internetowych w tym samym lub różnych pojemnikach jednocześnie będzie używać mojego słoika.
Chciałbym również wiedzieć, czy istnieją "granice", w których to zachowanie się zmienia. Na przykład, czy ten problem istnieje niezależnie od tego, czy plik log4j.jar jest słojem na poziomie kontenera lub słojem na poziomie aplikacji, czy też każdy z kontenerów działa w oddzielnej maszynie JVM?
Na koniec, jeśli tak jest, chciałbym wiedzieć, jakie strategie należy zastosować, aby rozwiązać problem.
Z góry dziękuję!
co pan skończyć się robi? –