2012-03-19 5 views
5

Я немного борюсь с JBoss AS7 и протоколированием. Я не могу найти ничего связанного в Интернете, несмотря на то, что моя проблема очень общая.JBoss AS 7: Регистрация

журнала по умолчанию выглядит в настоящее время следующим образом:

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 

Обратите внимание на [стандартный вывод], те строки, где записаны на Stout некоторой лесозаготовительной библиотеки, которая используется некоторыми библиотекой и подобран JBoss и записывается в журнальный файл. Это то, что я хочу исправить.

Я предполагаю, что должен быть способ иметь адаптер, который сообщает log4j (или любой другой структуре ведения журнала) для входа в подсистему регистрации jboss?

Моя первая идея состояла в том, чтобы удалить всю конфигурацию log4j из пути к классам моего проекта. Я нашел один в используемой библиотеке, которая записывала в stdout. Но это ничего не исправить.

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. 

Обычное сообщение об ошибке, когда не настроено приложение. По крайней мере, я могу быть уверен, что никакой конфигурации в пути к классам больше нет.

В документации JBoss AS даже не упоминается такой сценарий, как я должен использовать сторонние библиотеки, когда я не могу получить правильную регистрацию?

Я действительно надеюсь, что кто-то может мне помочь, любой намек оценивается!

Malax

ответ

14

Хотя это не вопрос, я предполагаю, что вы пытаетесь использовать log4j с JBoss AS7. Если это так, и вам нужно использовать appenders, тогда вам нужно исключить log4j, который поставляется с сервером, и в настоящее время разместить свою версию с вашим развертыванием. Это должно скоро меняться, как только будет устранено AS7-514. После добавления этой функции на вашей стороне ничего не нужно делать.

Чтобы решить эту проблему сейчас в первую очередь необходимо создать jboss-deployment-structure.xml, который должен выглядеть следующим образом:

<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> 

Затем добавить свою собственную версию log4j в свой WEB-INF/lib каталог или любое другое место, где бы развертывание быть в состоянии найти библиотеку.

После этого он должен работать так, как вы ожидали.

+0

К сожалению, для меня это почему-то не работает. Я исправил XML, чтобы быть хорошо сформированным (в документации указано, что является родительским элементом для исключений.), Но он все равно получает завернутые сообщения для ведения журнала, такие как: '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

сообщение будет завернуто на консоль. Все сообщения JBoss AS 7 получаются в stdout и stderr и записываются в них. –

+0

Отлично работает! Спасибо за информацию. – Dima