Здравствуйте, Blazkowicz, Вы писали:
B>А как вы умудряетесь иметь не пойманые исключения? Сами потоки создаёте? Всё остальное вполне успешно ловит инфраструктура JBoss. Покажите свой конфиг.
Прошу прощения. Неправильно задал вопрос.
Попытаюсь еще раз.
В приложении (App) я не логирую uncheked-исключения, они попадают в jboss и пишутся только в System.out и в файл (аппендеры CONSOLE и FILE):
<log4j:configuration>
...
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
В App есть свой log4j.xml:
<log4j:configuration>
...
<root>
<appender-ref ref="APP-FILE"/>
</root>
</log4j:configuration>
Проблема в том, что все нелогируемые исключения в App пишутся в CONSOLE и FILE. А мне надо, чтобы они писались в APP-FILE.
Если добавить APP-FILE в root log4j в jboss. То все сообщения от других приложений будут писать в APP-FILE, что конечно же не хотелось бы
Вопрос.
Как организоватьлогирование uncheked-исключений для App в APP-FILE и приэтом выполнялись условия:
1. В FILE они попадать не должны (как и все связанное с App)
2. Обрабатывать uncheked-исключения нельзя
3. Сообщения от других приложений не должны попадать в APP-FILE
Буду признателен за советы.
Здравствуйте, Blazkowicz, Вы писали:
B>А добавить свой глобальный фильтр для отлова таких исключений не вариант?
Да действительно, я тоже думал в этом направлении. Проблема решилась. Созданием глобального фильтра в jboss-log4j.xml (из приложения log4j.xml я удалил):
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
<param name="Threshold" value="DEBUG"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="false"/>
<param name="DeployURL" value="fcat.war"/>
</filter>
</appender>
<appender name="APP-FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="<path>/app.log"/>
...
<layout class="org.apache.log4j.PatternLayout">
...
</layout>
<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="fcat.war"/>
</filter>
</appender>
...
<root>
<appender-ref ref="FILE"/>
<appender-ref ref="APP-FILE"/>
</root>
Blazkowicz, спасибо за ответы