Если вы используете CXF 2.2.8 или выше, вам нужно будет сделать следующее:
шаг 1) Создайте файл META-INF/cxf/org.apache.cxf.Logger
на пути к классам, содержащий следующее:
org.apache.cxf.common.logging.Slf4jLogger
Если вы используете Maven, этот новый файл должен быть в src/main/resources/META-INF/cxf
, а не ниже src/main/webapp
!
шаг 2) Если вы хотите регистрировать все сообщения, создайте CXF LoggingFeature
, задайте для свойства prettyLogging
значение true
и добавьте его в шину CXF.
шаг 3) Добавьте необходимые файлы jar для log4j и slf4j-log4j12. Если вы используете Maven, включите следующие зависимости:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
шаг 4) В вас log4j.xml
установите для уровня журнала org.apache.cxf.services
значение INFO, установите для additivity
значение FALSE
и присоедините выделенный объект:
<!-- level INFO needed to log SOAP messages -->
<logger name="org.apache.cxf.services" additivity="false">
<level value="INFO" />
<!-- specify a dedicated appender for the SOAP messages -->
<appender-ref ref="WS_LOG_FILE" />
</logger>
Я создал пост в блоге , в котором более подробно объясняется, как настроить CXF для log4j .