Catalog alignment

Issue-ID: SDC-2724
Signed-off-by: ys9693 <ys9693@att.com>
Change-Id: I52b4aacb58cbd432ca0e1ff7ff1f7dd52099c6fe
diff --git a/openecomp-be/dist/sdc-onboard-backend-docker/artifacts/logback.xml b/openecomp-be/dist/sdc-onboard-backend-docker/artifacts/logback.xml
index 7044d34..2098836 100644
--- a/openecomp-be/dist/sdc-onboard-backend-docker/artifacts/logback.xml
+++ b/openecomp-be/dist/sdc-onboard-backend-docker/artifacts/logback.xml
@@ -1,315 +1,253 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="5 seconds">
 
-	<property scope="system" name="ECOMP-component-name" value="SDC" />
-	<property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE" />
-	<property file="${config.home}/catalog-be/configuration.yaml" />
-	<property scope="context" name="enable-all-log" value="false" />
+    <property scope="system" name="ECOMP-component-name" value="SDC"/>
+    <property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE"/>
+    <property file="${config.home}/catalog-be/configuration.yaml"/>
+    <property scope="context" name="enable-all-log" value="false"/>
+    <property name="p_msg" value="%replace(%replace(%replace(%replace(%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
+    <property name="p_ex" value="%replace(%replace(%replace(%replace(%exception{full}){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
+    <property name="p_debugInfo" value="%replace(%replace(%replace(%replace(%thread#%level#%logger{35}#%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
 
-	<!-- value used by pattern field list (| - is inter-field separator, || - unavailable or not applicable field value) (m - mandatory, o- optional)-->
-	<!--timestamp(m)| requestID(m)| serviceInstanceID(o)| threadID(m)| physicalServerName(o)| serviceName(m)| userID(m)| logLevel(m)| severity(o)| serverIpAddress(m)| serverName(m)| clientIpAddress(o)| className(m)| timer(o)| detailedMessage(o)-->
-	<property name="default-log-pattern"
-			  value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="all-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
-	<property name="error-log-pattern"
-			  value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%msg|%n" />
+    <property name="debug-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|${p_debugInfo} ${p_ex}|^\n%n%nopex"/>
 
-	<property name="audit-log-pattern" value="%X{AuditBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="error-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|${p_msg} ${p_ex}|%n%nopex"/>
 
-	<property name="metric-log-pattern" value="%X{MetricBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="audit-log-pattern"
+              value="%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%logger{35}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{InvocationID}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
-	<property name="debug-log-pattern" value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg|^\n%n"/>
+    <property name="metric-log-pattern"
+              value="%X{InvokeTimestamp}|%X{EndTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|||%X{ClassName}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{OutgoingInvocationId}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
 
-	<!-- All log -->
-	<if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-		<then>
-			<appender name="ALL_ROLLING"
-				class="ch.qos.logback.core.rolling.RollingFileAppender">
-				<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log
-				</file>
-
-				<rollingPolicy
-					class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-					<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
-					</fileNamePattern>
-					<minIndex>1</minIndex>
-					<maxIndex>10</maxIndex>
-				</rollingPolicy>
-
-				<triggeringPolicy
-					class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-					<maxFileSize>20MB</maxFileSize>
-				</triggeringPolicy>
-				<encoder>
-					<pattern>${default-log-pattern}</pattern>
-				</encoder>
-			</appender>
-
-			<appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
-				<appender-ref ref="ALL_ROLLING" />
-			</appender>
-		</then>
-	</if>
-
-	<!-- Error log -->
-	<appender name="ERROR_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log
-		</file>
-
-		<!-- Audit messages filter - deny audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>AUDIT_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- Transaction messages filter - deny Transaction messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
-		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-			<level>INFO</level>
-		</filter>
-
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
-
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${error-log-pattern}</pattern>
-		</encoder>
-	</appender>
-
-	<!-- Debug log -->
-	<appender name="DEBUG_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log
-		</file>
-
-		<!-- No need to deny audit messages - they are INFO only, will be denied
-			anyway -->
-		<!-- Transaction messages filter - deny Transaction messages, there are
-			some DEBUG level messages among them -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- accept DEBUG and TRACE level -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-				<expression>
-					e.level.toInt() &lt;= DEBUG.toInt()
-				</expression>
-			</evaluator>
-			<OnMismatch>DENY</OnMismatch>
-			<!--<OnMatch>NEUTRAL</OnMatch>-->
-			<OnMatch>ACCEPT</OnMatch>
-		</filter>
-
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
-
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${debug-log-pattern}</pattern>
-		</encoder>
-	</appender>
+    <property name="supportability-log-pattern"
+              value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{SupportablityComponentName}|%X{SupportablityAction}|%thread|%X{SupportablityComponentUUID}|%X{SupportablityStatus}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
 
-	<!-- ASDC debug by package-->
-	<appender name="PACKAGE_DEBUG_ROLLING"
-			  class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log
-		</file>
+    <!-- All log -->
+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+        <then>
+            <appender name="ALL_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log</file>
 
-		<!-- No need to deny audit messages - they are INFO only, will be denied
-			anyway -->
-		<!-- Transaction messages filter - deny Transaction messages, there are
-			some DEBUG level messages among them -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
+                <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                    <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
+                    </fileNamePattern>
+                    <minIndex>1</minIndex>
+                    <maxIndex>10</maxIndex>
+                </rollingPolicy>
 
-		<!-- accept DEBUG and TRACE level -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-				<expression>
-					e.level.toInt() &lt;= DEBUG.toInt()
-				</expression>
-			</evaluator>
-			<OnMismatch>DENY</OnMismatch>
-			<OnMatch>NEUTRAL</OnMatch>
-		</filter>
+                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                    <maxFileSize>20MB</maxFileSize>
+                </triggeringPolicy>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+                <encoder>
+                    <pattern>${all-log-pattern}</pattern>
+                </encoder>
+            </appender>
+        </then>
+    </if>
 
-		<triggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${debug-log-pattern}</pattern>
-		</encoder>
-	</appender>
 
-	<!-- Audit log -->
-	<appender name="AUDIT_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <!-- Debug log -->
+    <appender name="DEBUG_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log</file>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log
-		</file>
+        <!-- Audit and Metric messages filter - deny audit and metric messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>ENTRY</marker>
+                <marker>EXIT</marker>
+                <marker>INVOKE</marker>
+                <marker>INVOKE-RETURN</marker>
+                <marker>INVOKE-SYNCHRONOUS</marker>
+            </evaluator>
+            <onMismatch>NEUTRAL</onMismatch>
+            <onMatch>DENY</onMatch>
+        </filter>
 
-		<!-- Audit messages filter - accept audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>AUDIT_MARKER</marker>
-				<marker>AUDIT</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
+        <!-- accept INFO, DEBUG and TRACE level -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
+                <expression>
+                    e.level.toInt() &lt;= INFO.toInt()
+                </expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
+        </filter>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${audit-log-pattern}</pattern>
-		</encoder>
-	</appender>
-	
-	<!-- Metrics log -->
-	<appender name="METRICS_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log
-		</file>
+        <encoder>
+            <pattern>${debug-log-pattern}</pattern>
+        </encoder>
+    </appender>
 
-		<!-- Metric messages filter - accept metric messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>METRICS</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+    <!-- Error log -->
+    <appender name="ERROR_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log</file>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${metric-log-pattern}</pattern>
-		</encoder>
-	</appender>
+        <!-- deny all events with a level below WARN, that is INFO TRACE and DEBUG -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
 
-	<!-- SdncTransaction log -->
-	<appender name="TRANSACTION_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log
-		</file>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
 
-		<!-- Transaction messages filter - accept audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
+        <encoder>
+            <pattern>${error-log-pattern}</pattern>
+        </encoder>
+    </appender>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${default-log-pattern}</pattern>
-		</encoder>
-	</appender>
-	
-	<!-- Asynchronicity Configurations -->
-	<appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="DEBUG_ROLLING" />
-	</appender>
+    <!-- Audit log -->
+    <appender name="AUDIT_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log</file>
 
-	<appender name="ASYNC_TRANSACTION" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="TRANSACTION_ROLLING" />
-	</appender>
-	
-	<appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="ERROR_ROLLING" />
-	</appender>
+        <!-- Audit messages filter - accept audit messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>ENTRY</marker>
+                <marker>EXIT</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
 
-	<root level="INFO">
-		<appender-ref ref="ASYNC_ERROR" />
-		<appender-ref ref="ASYNC_DEBUG" />
-		<appender-ref ref="AUDIT_ROLLING" />
-		<appender-ref ref="ASYNC_TRANSACTION" />
-		<appender-ref ref="METRICS_ROLLING" />
-		<if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-			<then>
-				<appender-ref ref="ALL_ROLLING" />
-			</then>
-		</if>
-	</root>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-	<logger name="org.openecomp.sdc" level="INFO" />
-</configuration>
\ No newline at end of file
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${audit-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Metrics log -->
+    <appender name="METRICS_ROLLING"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log
+        </file>
+
+        <!-- Metric messages filter - accept metric messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>INVOKE</marker>
+                <marker>INVOKE-RETURN</marker>
+                <marker>INVOKE-SYNCHRONOUS</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${metric-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Supporability log -->
+    <appender name="SUPPORTABILITY_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log</file>
+
+        <!-- Supporability messages filter - accept suppportability messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>SUPPORTABILITY_MARKER</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy
+                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${supportability-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Asynchronicity Configurations -->
+    <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="DEBUG_ROLLING"/>
+    </appender>
+
+    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="ERROR_ROLLING"/>
+    </appender>
+
+    <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="ALL_ROLLING"/>
+    </appender>
+
+
+    <root level="INFO">
+        <appender-ref ref="ASYNC_DEBUG"/>
+        <appender-ref ref="ASYNC_ERROR"/>
+        <appender-ref ref="AUDIT_ROLLING"/>
+        <appender-ref ref="METRICS_ROLLING"/>
+        <appender-ref ref="SUPPORTABILITY_ROLLING"/>
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+            <then>
+                <appender-ref ref="ASYNC_ALL"/>
+            </then>
+        </if>
+    </root>
+
+    <logger name="org.openecomp.sdc" level="INFO"/>
+</configuration>