Fix SDC-ONBOARDING-BE not logging to STDOUT 17/132317/3
authorvasraz <vasyl.razinkov@est.tech>
Sat, 19 Nov 2022 12:30:55 +0000 (12:30 +0000)
committerMichael Morris <michael.morris@est.tech>
Mon, 28 Nov 2022 16:15:56 +0000 (16:15 +0000)
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech>
Change-Id: Icb81b67f199e3927edaf3bfcee8178724245c804
Issue-ID: SDC-3536

openecomp-be/dist/sdc-onboard-backend-docker/artifacts/chef-repo/cookbooks/sdc-onboard-backend/files/default/logback.xml
openecomp-be/dist/sdc-onboard-backend-docker/artifacts/chef-repo/cookbooks/sdc-onboard-backend/recipes/ON_4_setup_jetty_modules.rb
openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/src/main/resources/logback.xml

index e709735..5b11824 100644 (file)
@@ -6,26 +6,26 @@
     <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'}){'\\\|','-'}"/>
+        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'}){'\\\|','-'}"/>
+        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="%replace(%replace(%replace(%replace(%thread # %level # %logger{35} # %msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\r','\\\\r'}){'\\\|','-'}"/>
 
     <property name="all-log-pattern"
-              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{EndTimestamp}|%X{RequestID}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%level|%X{AlertSeverity}|%X{ServerIpAddress}|%X{ElapsedTime}|${ServerFQDN}|%X{ClientIPAddress}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
+        value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{EndTimestamp}|%X{RequestID}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%level|%X{AlertSeverity}|%X{ServerIpAddress}|%X{ElapsedTime}|${ServerFQDN}|%X{ClientIPAddress}|%logger{35}|%X{timer}|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}|${p_debugInfo} ${p_ex}|^\n %n%nopex"/>
+        value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|${p_debugInfo} ${p_ex}|^\n %n%nopex"/>
 
     <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}|%.-5level|500|${p_msg} ${p_ex}|%n%nopex"/>
+        value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|500|${p_msg} ${p_ex}|%n%nopex"/>
 
     <property name="audit-log-pattern"
-              value="%X{EntryTimestamp}|%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{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{InvocationID}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
+        value="%X{EntryTimestamp}|%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{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{InvocationID}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%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{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIpAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIPAddress }|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
+        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{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIpAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIPAddress }|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
     <!-- All log -->
     <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
@@ -34,7 +34,8 @@
                 <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>
+                        ${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
                     </fileNamePattern>
                     <minIndex>1</minIndex>
                     <maxIndex>10</maxIndex>
@@ -51,7 +52,6 @@
         </then>
     </if>
 
-
     <!-- 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>
@@ -76,7 +76,8 @@
         </filter>
 
         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
+            <fileNamePattern>
+                ${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
             </fileNamePattern>
             <minIndex>1</minIndex>
             <maxIndex>10</maxIndex>
@@ -91,7 +92,6 @@
         </encoder>
     </appender>
 
-
     <!-- 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>
         </filter>
 
         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
+            <fileNamePattern>
+                ${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
             </fileNamePattern>
             <minIndex>1</minIndex>
             <maxIndex>10</maxIndex>
         </encoder>
     </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>
         </filter>
 
         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
+            <fileNamePattern>
+                ${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
             </fileNamePattern>
             <minIndex>1</minIndex>
             <maxIndex>10</maxIndex>
         </encoder>
     </appender>
 
-
     <!-- Metrics log -->
     <appender name="METRICS_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
 
         <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log
         </file>
         </filter>
 
         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
+            <fileNamePattern>
+                ${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
             </fileNamePattern>
             <minIndex>1</minIndex>
             <maxIndex>10</maxIndex>
         </encoder>
     </appender>
 
-
     <!-- Asynchronicity Configurations -->
     <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
         <appender-ref ref="DEBUG_ROLLING"/>
         <appender-ref ref="ALL_ROLLING"/>
     </appender>
 
+    <appender name="DEBUG_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
+                <expression>return level &lt;= INFO;</expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
+        </filter>
+
+        <encoder>
+            <pattern>${debug-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="ERROR_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+
+        <encoder>
+            <pattern>${error-log-pattern}</pattern>
+        </encoder>
+    </appender>
 
     <root level="INFO">
         <appender-ref ref="ASYNC_ERROR"/>
         <appender-ref ref="ASYNC_DEBUG"/>
         <appender-ref ref="AUDIT_ROLLING"/>
         <appender-ref ref="METRICS_ROLLING"/>
+        <appender-ref ref="DEBUG_STDOUT"/>
+        <appender-ref ref="ERROR_STDOUT"/>
         <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
             <then>
                 <appender-ref ref="ASYNC_ALL"/>
 
     <logger name="org.openecomp.sdc" level="INFO"/>
     <logger name="org.openecomp.sdcrests" level="INFO"/>
-</configuration>
\ No newline at end of file
+</configuration>
index 9fe7478..6b2b79b 100644 (file)
@@ -6,7 +6,7 @@ else
 end
 
 execute "create-jetty-modules" do
-  command "java -jar #{ENV['JETTY_HOME']}/start.jar --add-to-start=deploy && java -jar #{ENV['JETTY_HOME']}/start.jar --create-startd --add-to-start=http,https,console-capture,setuid"
+  command "java -jar #{ENV['JETTY_HOME']}/start.jar --add-to-start=deploy && java -jar #{ENV['JETTY_HOME']}/start.jar --create-startd --add-to-start=http,https,setuid"
   cwd "#{ENV['JETTY_BASE']}"
   action :run
 end
index cb9bd06..9c50c74 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="5 seconds">
 
-       <property scope="system" name="OPENECOMP-component-name" value="ASDC" />
-       <property scope="system" name="OPENECOMP-subcomponent-name" value="ASDC-BE" />
-       <property file="${config.home}/catalog-be/configuration.yaml" />
-       <property scope="context" name="enable-all-log" value="false" />
+    <property scope="system" name="OPENECOMP-component-name" value="ASDC"/>
+    <property scope="system" name="OPENECOMP-subcomponent-name" value="ASDC-BE"/>
+    <property file="${config.home}/catalog-be/configuration.yaml"/>
+    <property scope="context" name="enable-all-log" value="false"/>
 
-       <!--statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
+    <!--statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
     <include resource="asdc_debug_logback.xml"/-->
 
-       <!-- 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="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{uuid}|%X{serviceInstanceID}|%thread||${OPENECOMP-subcomponent-name}|%X{userId}|%level|%X{alarmSeverity}|%X{localAddr}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
-
-       <property name="asdc-debug-log-pattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg %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}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/all.log
-                               </file>
-
-                               <rollingPolicy
-                                               class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                                       <fileNamePattern>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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}/${OPENECOMP-component-name}/${OPENECOMP-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}/${OPENECOMP-component-name}/${OPENECOMP-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>${default-log-pattern}</pattern>
-               </encoder>
-       </appender>
-
-       <!-- Debug log -->
-       <appender name="DEBUG_ROLLING"
-                         class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/debug.log
-               </file>
-
-               <!-- No need to deny audit messages - they are INFO only, will be denied
+    <!-- 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="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{uuid}|%X{serviceInstanceID}|%thread||${OPENECOMP-subcomponent-name}|%X{userId}|%level|%X{alarmSeverity}|%X{localAddr}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n"/>
+
+    <property name="asdc-debug-log-pattern"
+        value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg %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"/>
+
+    <!-- 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}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/all.log
+                </file>
+
+                <rollingPolicy
+                    class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                    <fileNamePattern>
+                        ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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}/${OPENECOMP-component-name}/${OPENECOMP-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}/${OPENECOMP-component-name}/${OPENECOMP-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>${default-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- Debug log -->
+    <appender name="DEBUG_ROLLING"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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
+        <!-- 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> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
-                               <expression>return level &lt;= DEBUG;</expression>
-                       </evaluator>
-                       <OnMismatch>DENY</OnMismatch>
-                       <OnMatch>NEUTRAL</OnMatch>
-               </filter>
-
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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>${default-log-pattern}</pattern>
-               </encoder>
-       </appender>
-
-       <!-- Debug log -->
-       <appender name="PACKAGE_DEBUG_ROLLING"
-                         class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/debug_by_package.log
-               </file>
-
-               <!-- No need to deny audit messages - they are INFO only, will be denied
+        <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> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
+                <expression>return level &lt;= DEBUG;</expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>NEUTRAL</OnMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>
+                ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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>${default-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- Debug log -->
+    <appender name="PACKAGE_DEBUG_ROLLING"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>
+            ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/debug_by_package.log
+        </file>
+
+        <!-- No need to deny audit messages - they are INFO only, will be denied
             anyway -->
-               <!-- Transaction messages filter - deny Transaction messages, there are
+        <!-- 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> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
-                               <expression>return level &lt;= DEBUG;</expression>
-                       </evaluator>
-                       <OnMismatch>DENY</OnMismatch>
-                       <OnMatch>NEUTRAL</OnMatch>
-               </filter>
-
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/debug_by_package.log.%i
-                       </fileNamePattern>
-                       <minIndex>1</minIndex>
-                       <maxIndex>10</maxIndex>
-               </rollingPolicy>
-
-               <triggeringPolicy
-                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                       <maxFileSize>20MB</maxFileSize>
-               </triggeringPolicy>
-               <encoder>
-                       <pattern>${asdc-debug-log-pattern}</pattern>
-               </encoder>
-       </appender>
-
-       <!-- Audit log -->
-       <appender name="AUDIT_ROLLING"
-                         class="ch.qos.logback.core.rolling.RollingFileAppender">
-
-               <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/audit.log
-               </file>
-
-               <!-- 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>
-                       </evaluator>
-                       <onMismatch>DENY</onMismatch>
-                       <onMatch>ACCEPT</onMatch>
-               </filter>
-
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/audit.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>
-
-       <!-- SdncTransaction log -->
-       <appender name="TRANSACTION_ROLLING"
-                         class="ch.qos.logback.core.rolling.RollingFileAppender">
-
-               <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/transaction.log
-               </file>
-
-               <!-- 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>
-
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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>
-
-       <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>
-
-
-       <root level="INFO">
-               <appender-ref ref="ASYNC_ERROR" />
-               <appender-ref ref="ASYNC_DEBUG" />
-               <appender-ref ref="AUDIT_ROLLING" />
-               <appender-ref ref="ASYNC_TRANSACTION" />
-               <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-                       <then>
-                               <appender-ref ref="ALL_ROLLING" />
-                       </then>
-               </if>
-       </root>
-
-       <logger name="org.openecomp.sdc" level="INFO" />
-
-       <logger name="org.openecomp.sdc.vendorsoftwareproduct" level="DEBUG" additivity ="false">
-               <appender-ref ref="PACKAGE_DEBUG_ROLLING" />
-       </logger>
-
-       <logger name="org.openecomp.sdc.vendorlicense" level="DEBUG" additivity ="false">
-               <appender-ref ref="PACKAGE_DEBUG_ROLLING" />
-       </logger>
-</configuration>
\ No newline at end of file
+        <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> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
+                <expression>return level &lt;= DEBUG;</expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>NEUTRAL</OnMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>
+                ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/debug_by_package.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy
+            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+            <pattern>${asdc-debug-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- Audit log -->
+    <appender name="AUDIT_ROLLING"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/audit.log
+        </file>
+
+        <!-- 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>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>
+                ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/audit.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>
+
+    <!-- SdncTransaction log -->
+    <appender name="TRANSACTION_ROLLING"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${OPENECOMP-component-name}/${OPENECOMP-subcomponent-name}/transaction.log
+        </file>
+
+        <!-- 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>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>
+                ${log.home}/${OPENECOMP-component-name}/${OPENECOMP-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>
+
+    <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>
+
+    <appender name="DEBUG_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
+                <expression>return level &lt;= INFO;</expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
+        </filter>
+
+        <encoder>
+            <pattern>${debug-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="ERROR_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+
+        <encoder>
+            <pattern>${error-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <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="DEBUG_STDOUT"/>
+        <appender-ref ref="ERROR_STDOUT"/>
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+            <then>
+                <appender-ref ref="ALL_ROLLING"/>
+            </then>
+        </if>
+    </root>
+
+    <logger name="org.openecomp.sdc" level="INFO"/>
+
+    <logger name="org.openecomp.sdc.vendorsoftwareproduct" level="DEBUG" additivity="false">
+        <appender-ref ref="PACKAGE_DEBUG_ROLLING"/>
+    </logger>
+
+    <logger name="org.openecomp.sdc.vendorlicense" level="DEBUG" additivity="false">
+        <appender-ref ref="PACKAGE_DEBUG_ROLLING"/>
+    </logger>
+</configuration>