| .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| .. http://creativecommons.org/licenses/by/4.0 |
| .. Copyright 2020 Huawei Technologies Co., Ltd. |
| |
| 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{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", 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> |
| |