[LOG] Add canonicalization for SDC logs 45/7345/3
authorVidya Shinde <vidya.shinde@amdocs.com>
Fri, 11 Aug 2017 12:51:58 +0000 (18:21 +0530)
committerVidya Shinde <vidya.shinde@amdocs.com>
Tue, 22 Aug 2017 07:13:51 +0000 (12:43 +0530)
Canonicalization of path for log provider configuration file and log files

Change-Id: I0fb1996ee412ec6c278e82ca063bd0c14b0a1ec2
Issue-ID: LOG-24
Signed-off-by: Vidya Shinde <vidya.shinde@amdocs.com>
onap/sdc/README.md [new file with mode: 0644]
onap/sdc/be/logback.xml [new file with mode: 0644]
onap/sdc/fe/logback.xml [new file with mode: 0644]

diff --git a/onap/sdc/README.md b/onap/sdc/README.md
new file mode 100644 (file)
index 0000000..e42f397
--- /dev/null
@@ -0,0 +1,39 @@
+##############################################################################################################################################
+## SDC logging configuration
+=================================================================================================
+SDC has two docker containers - sdc-BE and sdc-FE. 
+Each one has its own separate logback.xml file.
+Canonical logs will be generated at /var/log/onap/sdc/
+=================================================================================================
+## Instructions for deployment
+=================================================================================================
+### SDC logging deployment for sdc-FE
+-------------------------------------------------------------------------------------------------
+  1. Create the canonical path for log provider, /etc/onap/sdc/conf.d/fe, on the host VM.
+  2. Copy the logback.xml from 'fe' directory (of gerrit) into the path created in step 1.
+  3. Create the canonical path for logs, /var/log/onap/sdc/sdc-fe, on the host VM.
+  4. Provide write permissions for "others" user for directory created in step 3.
+  5. Volume-Mount: The sdc-FE container requires two host paths mapped as volume in the container
+          5.1. Log Provider file path:
+              Host path -      /etc/onap/sdc/conf.d/fe/logback.xml mapped to 
+        Container path - ${JETTY_BASE}/config/catalog-fe/logback.xml
+      5.2. Log file path:
+             Host path -      /var/log/onap/sdc/sdc-fe/ mapped to 
+        Container path - /var/log/onap/sdc/sdc-fe/
+-------------------------------------------------------------------------------------------------
+### SDC logging deployment for sdc-BE
+-------------------------------------------------------------------------------------------------
+  1. Create the canonical path for log provider, /etc/onap/sdc/conf.d/be, on the host VM.
+  2. Copy the logback.xml from 'be' directory (of gerrit) into the canonical path created in step 1.
+  3. Create the canonical path for logs, /var/log/onap/sdc/sdc-be, on the host VM.
+  4. Provide write permissions for "others" user for directory created in step 3.
+  5. Volume-Mount: The sdc-BE container requires two host paths mapped as volume in the container
+       5.1. Log Provider file path:
+       Host path -      /etc/onap/sdc/conf.d/be/logback.xml mapped to
+       Container path - ${JETTY_BASE}/config/catalog-be/logback.xml
+     5.2. Log file path:
+          Host path -      /var/log/onap/sdc/sdc-be/ mapped to
+       Container path - /var/log/onap/sdc/sdc-be/
+-------------------------------------------------------------------------------------------------
+Note - ${JETTY_BASE} in the test environment was set to /var/lib/jetty/
+##############################################################################################################################################
diff --git a/onap/sdc/be/logback.xml b/onap/sdc/be/logback.xml
new file mode 100644 (file)
index 0000000..a014e57
--- /dev/null
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration scan="true" scanPeriod="3 seconds">
+    <property name="logDir" value="/var/log/onap" />
+    <property name="componentName" scope="system" value="sdc"></property>
+    <property name="subComponentName" scope="system" value="sdc-be"></property>
+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+    <property file="${config.home}/catalog-be/configuration.yaml" />
+    <property name="enable-all-log" scope="context" value="false" />
+    <!--  log file names -->
+    <property name="errorLogName" value="error" />
+    <property name="metricsLogName" value="metrics" />
+    <property name="auditLogName" value="audit" />
+    <property name="debugLogName" value="debug" />
+    <property name="transactionLogName" value="transaction" />
+    <property name="allLogName" value="all" />
+    <property name="queueSize" value="256" />
+    <property name="maxFileSize" value="50MB" />
+    <property name="maxHistory" value="30" />
+    <property name="totalSizeCap" value="10GB" />
+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
+    <!-- All log -->
+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+        <then>
+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
+                <file>${logDirectory}/${allLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                    <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                        <maxFileSize>${maxFileSize}</maxFileSize>
+                    </timeBasedFileNamingAndTriggeringPolicy>
+                    <maxHistory>${maxHistory}</maxHistory>
+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>
+                </rollingPolicy>
+                <encoder>
+                    <pattern>${pattern}</pattern>
+                </encoder>
+            </appender>
+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
+                <appender-ref ref="ALL_ROLLING" />
+            </appender>
+        </then>
+    </if>
+    <!-- Error log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
+        <file>${logDirectory}/${errorLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Debug log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
+        <file>${logDirectory}/${debugLogName}.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>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Audit log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
+        <file>${logDirectory}/${auditLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- SdncTransaction log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
+        <file>${logDirectory}/${transactionLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Asynchronicity Configurations -->
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="DEBUG_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="TRANSACTION_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="ERROR_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="AUDIT_ROLLING" />
+    </appender>
+    <root level="INFO">
+        <appender-ref ref="ASYNC_ERROR" />
+        <appender-ref ref="ASYNC_DEBUG" />
+        <appender-ref ref="ASYNC_AUDIT" />
+        <appender-ref ref="ASYNC_TRANSACTION" />
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+            <then>
+                <appender-ref ref="ALL_ROLLING" />
+            </then>
+        </if>
+    </root>
+    <logger level="INFO" name="org.openecomp.sdc" />
+</configuration>
diff --git a/onap/sdc/fe/logback.xml b/onap/sdc/fe/logback.xml
new file mode 100644 (file)
index 0000000..8c25b69
--- /dev/null
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration scan="true" scanPeriod="3 seconds">
+    <property name="logDir" value="/var/log/onap" />
+    <property name="componentName" scope="system" value="sdc"></property>
+    <property name="subComponentName" scope="system" value="sdc-fe"></property>
+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+    <property file="${config.home}/catalog-fe/configuration.yaml" />
+    <property name="enable-all-log" scope="context" value="false" />
+    <!--  log file names -->
+    <property name="errorLogName" value="error" />
+    <property name="metricsLogName" value="metrics" />
+    <property name="auditLogName" value="audit" />
+    <property name="debugLogName" value="debug" />
+    <property name="transactionLogName" value="transaction" />
+    <property name="allLogName" value="all" />
+    <property name="queueSize" value="256" />
+    <property name="maxFileSize" value="50MB" />
+    <property name="maxHistory" value="30" />
+    <property name="totalSizeCap" value="10GB" />
+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
+    <!-- All log -->
+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+        <then>
+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
+                <file>${logDirectory}/${allLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                    <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                        <maxFileSize>${maxFileSize}</maxFileSize>
+                    </timeBasedFileNamingAndTriggeringPolicy>
+                    <maxHistory>${maxHistory}</maxHistory>
+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>
+                </rollingPolicy>
+                <encoder>
+                    <pattern>${pattern}</pattern>
+                </encoder>
+            </appender>
+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
+                <appender-ref ref="ALL_ROLLING" />
+            </appender>
+        </then>
+    </if>
+    <!-- Error log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
+        <file>${logDirectory}/${errorLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Debug log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
+        <file>${logDirectory}/${debugLogName}.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>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Audit log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
+        <file>${logDirectory}/${auditLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- SdncTransaction log -->
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
+        <file>${logDirectory}/${transactionLogName}.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.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${maxFileSize}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!-- Asynchronicity Configurations -->
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="DEBUG_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="TRANSACTION_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="ERROR_ROLLING" />
+    </appender>
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
+        <queueSize>${queueSize}</queueSize>
+        <appender-ref ref="AUDIT_ROLLING" />
+    </appender>
+    <root level="INFO">
+        <appender-ref ref="ASYNC_ERROR" />
+        <appender-ref ref="ASYNC_DEBUG" />
+        <appender-ref ref="ASYNC_AUDIT" />
+        <appender-ref ref="ASYNC_TRANSACTION" />
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+            <then>
+                <appender-ref ref="ALL_ROLLING" />
+            </then>
+        </if>
+    </root>
+    <logger level="INFO" name="org.openecomp.sdc" />
+</configuration>