CXF-logging:

It is a logging framework from SO. Here basically we are having 2 interceptors which extends AbstractSoapInterceptor.

SOAPLoggingInInterceptor:

  • This interceptor is responsible for Capturing requestId , client ip address , invocation id, service name, instance id, entry timestamp , log timestamp, Elapsed time for each request and update the MDC logger with staus In-progress.

SOAPLoggingOutInterceptor:

  • This interceptor is responsible for log timestamp , elapsed time for each request and checks for if there is any exception update the MDC loggers with 500 response code otherwise update the status as completed.

cxf-logging Used By below components of SO:

The cxf-logging framework is used by below components of so.

mso-openstack-adapter. mso-requests-db-adapter. mso-sdnc-adapter. mso-infrastructure-bpmn.

cxf-logging dependency for using in other components:

<dependency>

<groupId>org.onap.so</groupId> <artifactId>cxf-logging</artifactId> <version>${project.version}</version>

</dependency>

pom.xml:

<?xml version=”1.0”?> <project xmlns=”http://maven.apache.org/POM/4.0.0” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

<modelVersion>4.0.0</modelVersion> <parent>

<groupId>org.onap.so</groupId> <artifactId>so</artifactId> <version>1.6.0-SNAPSHOT</version>

</parent> <name>CXFLogging</name> <description>Common CXF Logging Classes</description> <dependencies>

<dependency>

<groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-client</artifactId> <version>${cxf.version}</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-bindings-soap</artifactId> <version>${cxf.version}</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>${cxf.version}</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId>

</dependency>

<dependency>

<groupId>org.slf4j</groupId> <artifactId>slf4j-ext</artifactId>

</dependency>

<dependency>

<groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>

</dependency>

</dependencies>

<build>
<resources>
<resource>

<directory>src/main/resources</directory> <filtering>true</filtering>

</resource>

<resource>

<directory>src/main/java</directory>

<includes>

<include>*.java</include>

</includes>

</resource>

</resources>

</build>

<artifactId>cxf-logging</artifactId>

</project>

Configuration file:

Here we can do configure the logger properties for the cxf-logging.

<configuration>

<property name=”p_tim” value=”%d{&quot;yyyy-MM-dd’T’HH:mm:ss.SSSXXX&quot;, UTC}”/>

<property name=”p_lvl” value=”%level”/>

<property name=”p_log” value=”%logger”/>

<property name=”p_mdc” value=”%replace(%replace(%mdc){’t’,’\\t’}){’n’, ‘\\n’}”/>

<property name=”p_msg” value=”%replace(%replace(%msg){’t’, ‘\\t’}){’n’,’\\n’}”/>

<property name=”p_exc” value=”%replace(%replace(%rootException){’t’, ‘\\t’}){’n’,’\\n’}”/>

<property name=”p_mak” value=”%replace(%replace(%marker){’t’, ‘\\t’}){’n’,’\\n’}”/>

<property name=”p_thr” value=”%thread”/>

<property name=”pattern” value=”%nopexception${p_tim}t${p_thr}t${p_lvl}t${p_log}t${p_mdc}t${p_msg}t${p_exc}t${p_mak}t%n”/>

<appender name=”STDOUT” class=”ch.qos.logback.core.ConsoleAppender”>

<encoder>

<pattern>${pattern}</pattern>

</encoder>

</appender>

<appender name=”test”

class=”org.onap.so.utils.TestAppender” />

<logger name=”com.att.ecomp.audit” level=”info” additivity=”false”>

<appender-ref ref=”STDOUT” />

</logger>

<logger name=”com.att.eelf.metrics” level=”info” additivity=”false”>

<appender-ref ref=”STDOUT” />

</logger>

<logger name=”com.att.eelf.error” level=”WARN” additivity=”false”>

<appender-ref ref=”STDOUT” />

</logger>

<logger name=”org.onap” level=”${so.log.level:-DEBUG}” additivity=”false”>

<appender-ref ref=”STDOUT” />

<appender-ref ref=”test” />

</logger>

<logger name=”org.flywaydb” level=”DEBUG” additivity=”false”> <appender-ref ref=”STDOUT” />

</logger>

<logger name=”ch.vorburger” level=”WARN” additivity=”false”>

<appender-ref ref=”STDOUT” />

</logger>

<root level=”WARN”>

<appender-ref ref=”STDOUT” /> <appender-ref ref=”test” />

</root>

</configuration>