Я просмотрел все сообщения, но не нашел четкого ответа на этот вопрос.Входящие и исходящие сообщения cxf в отдельный файл журнала
Как настроить ведение журнала для регистрации входящих и исходящих сообщений CXF?
У меня есть следующая настройка.
Файл org.apache.cxf.Logger с
org.apache.cxf.common.logging.Log4jLogger
applicationContext.xml имеет следующее (это звучит глупо, но это единственное место для перехватчиков я мог бы получить вывод сообщений)
<bean id="abstractLoggingInterceptor" abstract="true"> <property name="prettyLogging" value="true"/> </bean> <bean id="loggingInInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor" parent="abstractLoggingInterceptor"/> <bean id="loggingOutInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor" parent="abstractLoggingInterceptor"/> <cxf:bus> <cxf:inInterceptors> <ref bean="loggingInInterceptor"/> </cxf:inInterceptors> <cxf:outInterceptors> <ref bean="loggingOutInterceptor"/> </cxf:outInterceptors> <cxf:outFaultInterceptors> <ref bean="loggingOutInterceptor"/> </cxf:outFaultInterceptors> <cxf:inFaultInterceptors> <ref bean="loggingInInterceptor"/> </cxf:inFaultInterceptors> </cxf:bus>
Я пытался следовать этим инструкциям с SLF4J и с log4j, но единственный выход I получить в файл сообщения журнала приложения. Я вижу входящие и исходящие сообщения на моей консоли.
Могу ли я получить что-то подобное работе logback.xml для меня, поэтому я разделяю журналы приложений и журналы сообщений. Пример: http://www.wolfe.id.au/2011/05/20/apache-cxf-logging/
Спасибо.
EDIT 1: я удалил org.apache.cxf.common.logging.Log4jLogger из моего пути к классам, и поместил следующее моей log4j.xml. Он регистрируется в файле и настраивается, когда уровень ведения журнала равен INFO.
<appender name="RSLOGFILE" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${project.basedir}/logs/cxf_inout_messages.log"/>
<param name="MaxFileSize" value="100KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- Print the date in ISO 8601 format -->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="org.apache.cxf">
<level value="ERROR"/>
<appender-ref ref="RSLOGFILE"/>
</logger>
Все в порядке, всего лишь небольшая заметка: Не забудьте поставить «META-INF/cxf/org.apache.cxf.Logger» под, например, src/main/resources вместо «src/main/webapp», как и я. Таким образом, это будет под classpath. –