Developer guide for cxf-logging 93/111993/1
authorsekharhuawei <reddi.shekhar@huawei.com>
Tue, 1 Sep 2020 19:08:40 +0000 (00:38 +0530)
committersekharhuawei <reddi.shekhar@huawei.com>
Tue, 1 Sep 2020 19:08:40 +0000 (00:38 +0530)
Issue-ID: SO-3153

Signed-off-by: sekharhuawei <reddi.shekhar@huawei.com>
Change-Id: Ibfc12aa9de93762320badaabacbdcd82555eda6b

docs/developer_info/Cxf_Logging.rst [new file with mode: 0644]
docs/developer_info/developer_information.rst

diff --git a/docs/developer_info/Cxf_Logging.rst b/docs/developer_info/Cxf_Logging.rst
new file mode 100644 (file)
index 0000000..ea2bbf5
--- /dev/null
@@ -0,0 +1,210 @@
+.. 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{&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>
+
index 1b9e83b..a060da6 100644 (file)
@@ -21,5 +21,6 @@ SO Developer Information
    BPMN_Project_Deployment_Strategy.rst
    BPMN-INFRA_Workflow_Understanding.rst
    Mso_Openstack_Adapter.rst
+   Cxf_Logging.rst
    instantiate/index.rst
    FAQs.rst