Use log4j2 size config instead of maxFileSize 49/67749/14
authorSam Hague <shague@redhat.com>
Thu, 1 Feb 2018 13:43:19 +0000 (08:43 -0500)
committerSam Hague <shague@redhat.com>
Fri, 2 Feb 2018 19:34:39 +0000 (14:34 -0500)
karaf 4 uses log4j2 rather than log4j. The newer api uses
different config for the maxFileSize.

Use the new common-functions to set the karaf logging.

Change-Id: Ic7fd5c484885e9b1bba0873a50134cf79e74141a
Signed-off-by: Sam Hague <shague@redhat.com>
jjb/integration/common-functions.sh
jjb/integration/integration-configure-clustering.sh
jjb/integration/integration-deploy-controller-run-test.sh

index 9955847e7d0b855037d2c1b4315ed13dc7d146bd..0d71841878e10c3c1bffabc56eec1595aa4150c1 100644 (file)
@@ -56,3 +56,53 @@ function set_java_vars() {
     JAVA_RESOLVED=$(readlink -e "${JAVA_HOME}/bin/java")
     echo "Java binary pointed at by JAVA_HOME: ${JAVA_RESOLVED}"
 } # set_java_vars()
+
+# shellcheck disable=SC2034
+# foo appears unused. Verify it or export it.
+function configure_karaf_log() {
+    local -r karaf_version=$1
+    local -r controllerdebugmap=$2
+    local logapi=log4j
+
+    echo "Configuring the karaf log... karaf_version: ${karaf_version}"
+    if [[ "${karaf_version}" == "karaf4" ]]; then
+        logapi=log4j2
+        # FIXME: Make log size limit configurable from build parameter.
+        sed -ie 's/log4j2.appender.rolling.policies.size.size = 16MB/log4j2.appender.rolling.policies.size.size = 1GB/g' ${LOGCONF}
+        orgmodule="org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver"
+        orgmodule_="${orgmodule//./_}"
+        echo "${logapi}.logger.${orgmodule_}.name = WARN" >> ${LOGCONF}
+        echo "${logapi}.logger.${orgmodule_}.level = WARN" >> ${LOGCONF}
+    else
+        sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
+        # FIXME: Make log size limit configurable from build parameter.
+        sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' ${LOGCONF}
+        echo "${logapi}.logger.org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver = WARN" >> ${LOGCONF}
+    fi
+
+    # Add custom logging levels
+    # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
+    # where module is abbreviated and does not include "org.opendaylight."
+    unset IFS
+    echo "controllerdebugmap: ${controllerdebugmap}"
+    if [ -n "${controllerdebugmap}" ]; then
+        for kv in ${controllerdebugmap}; do
+            module="${kv%%:*}"
+            level="${kv#*:}"
+            echo "module: $module, level: $level"
+            # shellcheck disable=SC2157
+            if [ -n "${module}" ] && [ -n "${level}" ]; then
+                orgmodule="org.opendaylight.${module}"
+                if [[ "${karaf_version}" == "karaf4" ]]; then
+                    orgmodule_="${orgmodule//./_}"
+                    echo "${logapi}.logger.${orgmodule_}.name = ${orgmodule}" >> ${LOGCONF}
+                    echo "${logapi}.logger.${orgmodule_}.level = ${level}" >> ${LOGCONF}
+                else
+                    echo "${logapi}.logger.${orgmodule} = ${level}" >> ${LOGCONF}
+                fi
+            fi
+        done
+    fi
+
+    cat ${LOGCONF}
+} # function configure_karaf_log()
index 00745aa38c133f393fd02a0a0ab9002f19482a0c..ecc941a5b16ca3eff5d4e84687e4e9a3268f164e 100644 (file)
@@ -83,31 +83,14 @@ fi
 sed -ie "s%\(featuresRepositories=\|featuresRepositories =\)%featuresRepositories = mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLEVERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
 cat ${FEATURESCONF}
 
-echo "Configuring the log..."
-sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
-# FIXME: Make log size limit configurable from build parameter.
-sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' ${LOGCONF}
-# Add custom logging levels
-# CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
-# where module is abbreviated and does not include org.opendaylight
-unset IFS
-if [ -n "${CONTROLLERDEBUGMAP}" ]; then
-    for kv in ${CONTROLLERDEBUGMAP}; do
-        module=\${kv%%:*}
-        level=\${kv#*:}
-        if [ -n \${module} ] && [ -n \${level} ]; then
-            echo "log4j.logger.org.opendaylight.\${module} = \${level}" >> \${LOGCONF}
-        fi
-    done
-fi
-cat ${LOGCONF}
-
 if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
   echo "Enable the l3.fwd in custom.properties.."
   echo "ovsdb.l3.fwd.enabled=yes" >> ${CUSTOMPROP}
   cat ${CUSTOMPROP}
 fi
 
+configure_karaf_log "${KARAF_VERSION}" "${CONTROLLERDEBUGMAP}"
+
 set_java_vars "${JAVA_HOME}"
 
 # Copy shard file if exists
index 06cc4542e8912620d722b3760787f613242f9de2..84fb75517c20ba366f4f5dc172305269af3f85e2 100644 (file)
@@ -80,26 +80,7 @@ if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
 fi
 cat ${CUSTOMPROP}
 
-echo "Configuring the log..."
-sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
-# FIXME: Make log size limit configurable from build parameter.
-sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' ${LOGCONF}
-echo "log4j.logger.org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver = WARN" >> ${LOGCONF}
-# Add custom logging levels
-# CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
-# where module is abbreviated and does not include org.opendaylight
-unset IFS
-if [ -n "${CONTROLLERDEBUGMAP}" ]; then
-    for kv in ${CONTROLLERDEBUGMAP}; do
-        module=\${kv%%:*}
-        level=\${kv#*:}
-        if [ -n \${module} ] && [ -n \${level} ]; then
-            echo "log4j.logger.org.opendaylight.\${module} = \${level}" >> ${LOGCONF}
-        fi
-    done
-fi
-echo "cat ${LOGCONF}"
-cat ${LOGCONF}
+configure_karaf_log "${KARAF_VERSION}" "${CONTROLLERDEBUGMAP}"
 
 set_java_vars "${JAVA_HOME}"