2012-03-19 12 views
5

Trochę walczę z JBoss AS7 i logowaniem. Nie mogę znaleźć niczego w Internecie, mimo że mój problem jest bardzo ogólny.JBoss AS 7: Rejestrowanie

Domyślna log wygląda obecnie tak:

11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - I/O exception (java.net.SocketException) caught when processing request: Connection reset 
11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - Retrying request 

wypowiedzenia [stdout], te linie, gdzie zapisywane stout za pośrednictwem biblioteki rejestrowania, który jest używany przez niektóre biblioteki i podchwycona przez JBoss i zapisywane do plik dziennika. To właśnie chcę naprawić.

Zgaduję, że musi istnieć sposób na adapter, który mówi log4j (lub jakiejkolwiek innej strukturze logowania), aby zalogować się do podsystemu logu jboss?

Moim pierwszym pomysłem było usunięcie całej konfiguracji log4j ze ścieżki klas mojego projektu. Znalazłem jeden w bibliotece, z której korzystałem, a która logowała się na standardowe wyjście. Ale to niczego nie naprawi.

11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment). 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly. 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Zwykły komunikat o błędzie, gdy nie skonfigurowano żadnego programisty. Przynajmniej mogę być pewien, że żadna konfiguracja nie jest już w ścieżce klas.

Dokumentacja JBoss AS nawet nie wspomina tego rodzaju scenariusza, jak mam korzystać z bibliotek zewnętrznych, gdy nie mogę uzyskać prawidłowego rejestrowania?

Mam nadzieję, że ktoś może mi pomóc, każda podpowiedź jest doceniana!

Malax

Odpowiedz

14

Chociaż nie jest to w pytaniu, ja zakładam, że próbujesz użyć log4j z JBoss AS7. Jeśli jest to prawdą i musisz korzystać z aplikacji dołączających, musisz wykluczyć log4j dołączony do serwera i spakować swoją własną wersję wraz z wdrożeniem. Powinno to ulec zmianie wkrótce po rozwiązaniu AS7-514. Po dodaniu tej funkcji nic nie będzie trzeba robić po twojej stronie.

Aby rozwiązać ten problem na razie trzeba najpierw stworzyć jboss-deployment-structure.xml który powinien wyglądać następująco:

<jboss-deployment-structure> 
    <deployment> 
     <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> 
     <exclusions> 
      <module name="org.apache.log4j" /> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

Następnie dodać własną wersję log4j do katalogu WEB-INF/lib albo każde inne miejsce, gdzie wdrożenie byłoby być w stanie znaleźć bibliotekę.

Po tym czasie powinno działać tak, jak można się spodziewać.

+0

Niestety, nie działa to dla mnie z jakiegoś powodu. Poprawiłem kod XML tak, aby był dobrze sformułowany (Dokumentacja mówi, że jest elementem-rodzicem dla wykluczeń.), Ale nadal są one zapakowane w logi, takie jak: '09: 58: 04,564 INFO [stdout] (http-localhost- 127.0.0.1-8080-1) 2012-03-22 09: 58: 04,564 DEBUG [http-localhost-127.0.0.1-8080-1] org.apache.http.wire: << " [\ n] "' – Malax

+0

The wiadomość zostanie zapakowana na konsoli JBoss AS 7 otrzyma wszystkie wiadomości zalogowane do stdout i stderr i loguje je –

+0

Działa wspaniale! Dzięki za informację. – Dima